我正在测试一个流式传输Twitter数据的应用程序 .
List<Status> statuses = twitter.getHomeTimeline();
for (Status status : statuses) {
String rawJSON = TwitterObjectFactory.getRawJSON(status);
System.out.println(rawJSON);
}
这段代码工作正常并打印出这样的东西
{“in_reply_to_status_id_str”:null,“in_reply_to_status_id”:null,“coordinates”:null,“created_at”:“Tue Dec 05 13:29:02 0000 2017”,“truncated”:false,“in_reply_to_user_id_str”:null,“来源“:”http://twitter.com/#!/ download / ipad \“rel = \”nofollow \“> Twitter for iPad </a>”,“retweet_count”:1,“转推”:false,“缘 “:NULL,” in_reply_to_screen_name “:NULL,” is_quote_status “:假,” 实体 “:{” 网址 “:[],” #标签 “:[],” user_mentions “:[]” 符号“:[]} ” .....}
当我实现设置要跟踪的关键字的实时流查询时,它只打印 null
.
while(true){
Status status = queue.poll();
if (status == null) {
Thread.sleep(100);
}
if(status!=null){
String json = TwitterObjectFactory.getRawJSON(status);
System.out.println(json);
}
}
我怎么解决这个问题?谢谢 .
1 回答
来自TwitterObjectFactory javadoc
当您在用于检索要转换的状态的数据之后调用任何方法来检索数据时,它们将变得不可访问,在这种情况下,该方法将返回null而不是json . 要解决此问题,您必须在抓取它们后直接转换它们 .
可悲的是,我不知道这个问题的解决方法,我甚至不知道他们为什么这样做!