2015-12-01 5 views
1

Я собираюсь использовать Twitter для анализа семантического текста в школьном классе. Я загрузил Hosebird Client для Java и запускает FilterStreamExample.java: https://github.com/twitter/hbc/blob/master/hbc-example/src/main/java/com/twitter/hbc/example/FilterStreamExample.javaTwitter hbc API: как получить отдельные тексты твитов?

Запуск, я получаю много данных о профилях пользователей, их настройках, фоновых изображениях и т. Д. Я просто хочу, чтобы только текст в твиттере , И, возможно, местоположение и имя пользователя.

Это может быть глупый вопрос, но как мне заставить его отображать только «текстовую» информацию? Прямо сейчас, он просто распечатывает все.

// Do whatever needs to be done with messages 
    for (int msgRead = 0; msgRead < 1000; msgRead++) { 
     String msg = queue.take(); 
     System.out.println(msg); 
    } 

Возможно, я мог бы выполнить поиск «текста» в самих строках, но это кажется немного громоздким. Разве нет лучшего способа сделать это?

ответ

3

Ответ от twitter Streaming API - это строка JSON. Обработать строку в JSON объект и получить значение из ключа «текст»

import org.json.*; 
for (int msgRead = 0; msgRead < 1000; msgRead++) { 
     String msg = queue.take(); 
     JSONObject obj = new JSONObject(msg); 
    String text= obj.getString("text"); 
     System.out.println(msg); 
} 
*Not Tested 

См следующее для разбора JSON в Java How to parse JSON in Java

+0

Спасибо большое! Я все еще новичок в веб-разработке, но ваше решение действительно помогло мне :) Кстати, знаете ли вы, что можно получить ВСЕ твиты без каких-либо «терминов»? Прямо сейчас я ищу твиты, содержащие слово «Рождество», но могу ли я получить любые твиты (в режиме реального времени)? "endpoint.trackTerms (Lists.newArrayList (" Рождество "));" – Wikzo