Twitter4J:HashTag搜索推文,仅获得JSON结果

时间:2014-12-07 16:59:50

标签: json twitter jersey twitter4j hashtag

我有一个术语项目,其中一部分是解析twitter JSON对象。我正在使用Jersey和JAX-RS 我原本试图使用我的Jersey客户端直接解析它,这是我的原始代码: (原始链接:https:// api.twitter.com / 1.1 / search / tweets.json?q =%23coldplay)

public static String lastFMHTTP() {
    Client client = ClientBuilder.newClient();
    String Str = client.target("https://api.twitter.com/")
                        .path("1.1")
                        .path("tweets.json?")
                        .queryParam("q", "#coldplay")
                        .queryParam("result_type", "recent")
                        .request(MediaType.APPLICATION_JSON_TYPE)   
                        .get(String.class);
    return Str;
}

但事实并非如此;我不明白如何传递tweets.json?作为一个参数,无论如何这将返回一个“错误的身份验证数据”(我尝试了另一种解析方法,没有路径和查询参数)。但是,此代码适用于我的lastfm请求。 api密钥包含在URL

经过一番搜索,我发了twitter4j,这是一个专门为此目的而制作的图书馆。我成功地收到了JSON响应。这是我正在使用的代码:

public static String twitterHTTP() throws TwitterException {
    Twitter twitter = TwitterFactory.getSingleton();
    Query query = new Query("#coldplay");
    QueryResult result = twitter.search(query);
    return result;
}

当我运行此方法时,object.twitterHTTP(); 它将信息打印到我的控制台。我根本不需要打印任何东西,我只需要它以JSON格式返回一个字符串。

我最好的选择是什么? 有没有办法通过第一个代码验证twitter,或者有没有办法从第二个代码中删除所有打印并让它返回一个字符串对象? 感谢

1 个答案:

答案 0 :(得分:0)

尤里卡,我已经知道了。我很高兴我现在可以死了。 我的twitter4j.properties文件中的Debug设置为true,这就是为什么我得到了所有这些" junk"打印出的信息,实际上证明是日志。将debug设置为false可解决问题,并且不再打印日志。

事实证明,我实际上并不需要将JSON响应作为单个字符串返回;我之所以想要这个是为了创建类/方法和对象来解析JSON响应,实际上,twitter4j库提供了进行解析的方法。因此,我不需要创建新代码。