如何使用rest API解析twitter搜索结果

时间:2014-02-11 06:14:12

标签: java json api twitter

我试图解析使用rest API的结果。似乎get search / tweet API返回了Json对象而不是Json数组。我的问题是:如果返回的整个对象是一个对象而不是一个数组,我如何分离返回的每个结果?

这是我的代码:

公共类搜索{

private static final String PROTECTED_RESOURCE_URL = "https://api.twitter.com/1.1/search/tweets.json";

public static void main(String[] args) {
    // If you choose to use a callback, "oauth_verifier" will be the return
    // value by Twitter (request param)
    String s="#NHL";
    System.out.println(getTweets(s));
}

public static String getTweetsString(String param) {
    OAuthService service = new ServiceBuilder()
            .provider(TwitterApi.SSL.class).apiKey(AuthInfo.API_KEY)
            .apiSecret(AuthInfo.API_SECRET).build();

    Token accessToken = new Token(AuthInfo.ACCESS_TOKEN,
            AuthInfo.ACCESS_TOKEN_SECRET);

    OAuthRequest request = new OAuthRequest(Verb.GET,
            PROTECTED_RESOURCE_URL);
    request.addQuerystringParameter("q",param);
    request.addQuerystringParameter("count", "2");

    service.signRequest(accessToken, request);
    Response response = request.send();

    System.out.println();
    return response.getBody();
}

public static ArrayList<Tweet> getTweets(String param){
    ArrayList<Tweet> result = new ArrayList<Tweet>();
    String tweets = getTweetsString(param);

    try {
        InputStream is = new ByteArrayInputStream(tweets.getBytes("UTF-8"));
        JsonReader reader = Json.createReader(is);
        JsonArray lists = reader.readArray();
        for(JsonObject rs: lists.getValuesAs(JsonObject.class)){
            System.out.println(rs);
        }
    } catch (UnsupportedEncodingException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

        return result;
}

}

以下错误显示:  无法读取JSON数组,找到了JSON对象

谢谢你的帮助!!!!

1 个答案:

答案 0 :(得分:0)

此链接应该让您使用Java(http://answers.oreilly.com/topic/257-how-to-parse-json-in-java/

进行JSON解析

但是既然你试图解析Twitter api返回的JSON对象数组,请看看这个例子...... http://www.bridgefarmconsulting.com/blog/twitter-authentication/ 在博客文章的最后,您将看到作者编写了一个用于解析JSON对象的类... 因此,获取您的响应字符串,根据您要访问的密钥创建解析器类并解析它......

希望你明白了......