【问题标题】:How to get a tweet with its full JSON in Twitter4j如何在 Twitter4j 中获取带有完整 JSON 的推文
【发布时间】:2021-03-19 05:35:36
【问题描述】:

我需要检索推文列表,其中包含许多信息(可以从一些 Tweet.getX() 方法轻松检索),但推文的整个 JSON 除外。

我不知道如何从 QueryResult 中获取属于推文的 JSON。谁能帮帮我?

【问题讨论】:

  • TwitterObjectFactory.jsonStoreEnabled 是如何使用的?

标签: json twitter4j


【解决方案1】:

您可以通过在传递给 TwitterFactory 构造函数的 ConfigurationBuilder 对象上设置 setJSONStoreEnabled(true); 来获取推文的 JSON。

这是一个完整的例子:

public static void main(String[] args) throws TwitterException {
    ConfigurationBuilder cb = new ConfigurationBuilder();
    cb.setJSONStoreEnabled(true);

    Twitter twitter = new TwitterFactory(cb.build()).getInstance();
    Query query = new Query("lizardbill");
    QueryResult result = twitter.search(query);
    for (Tweet tweet : result.getTweets()) {
        System.out.println(tweet.getFromUser() + ":" + tweet.getText());
        String json = DataObjectFactory.getRawJSON(tweet);
        System.out.println(json);
    }
}

【讨论】:

  • 非常感谢,比尔!说“DataObjectFactory.getRawJSON(tweet)”会导致另一个对 Twitter API 的查询,对吧?这不是通过检索到的推文的某些属性来实现的,是吗?谢谢,安德里亚
  • @andreaxi 不幸的是,不,我不认为 JSON 字符串被保存为 Tweet 对象的一部分。
  • 好吧,我会找到其他方法(也许获取 JSON,然后解析它以获取我需要的信息:因此只需查询 JSON,以及解析 JSON 的一些工作)。谢谢,比尔。
  • DataObjectFactory 现已弃用,您需要使用TwitterObjectFactory.jsonStoreEnabled
  • 如果我想使用流API而不是搜索API怎么办?
【解决方案2】:

我认为 Bill 回答了这个问题,但那些还在想使用 TwitterObjectFactory 的人,我相信它是这样完成的:

ResponseList<Status> userTimeline = // init twitter instance

userTimeline.forEach(x -> {
        String json = TwitterObjectFactory.getRawJSON(x);
        System.out.println(json);
    });

【讨论】:

    猜你喜欢
    • 2018-06-11
    • 2020-10-05
    • 1970-01-01
    • 1970-01-01
    • 2012-11-19
    • 1970-01-01
    • 1970-01-01
    • 2020-10-09
    • 2015-11-20
    相关资源
    最近更新 更多