首页 文章

Twitter4j - 转换为JSON的状态仅返回空值

提问于
浏览
3

我正在测试一个流式传输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 回答

  • 1

    来自TwitterObjectFactory javadoc

    getRawJSON(java.lang.Object obj)返回提供的对象的原始JSON形式 . 请注意,原始JSON表单只能从调用最后一个方法调用的同一个线程中检索,并且一旦另一个方法调用就会变得不可访问

    当您在用于检索要转换的状态的数据之后调用任何方法来检索数据时,它们将变得不可访问,在这种情况下,该方法将返回null而不是json . 要解决此问题,您必须在抓取它们后直接转换它们 .

    可悲的是,我不知道这个问题的解决方法,我甚至不知道他们为什么这样做!

相关问题