json twitter搜索feed在android中解析

时间:2013-04-14 09:16:05

标签: android json twitter-feed

我在从twitter搜索Feed解析json时遇到问题。例如,搜索网址是:

https://search.twitter.com/search.json?q=android

Here is a link to the search

我想在json数据中获取“result”数组。我的fetch json和parse的代码:

StringBuilder tweetFeedBuilder = new StringBuilder();
HttpClient tweetClient = new DefaultHttpClient();

//pass search URL string to fetch
HttpGet tweetGet = new HttpGet(searchURL);

//execute request
HttpResponse tweetResponse = tweetClient.execute(tweetGet);
//check status, only proceed if ok
StatusLine searchStatus = tweetResponse.getStatusLine();
if (searchStatus.getStatusCode() == 200) {
    //get the response
    HttpEntity tweetEntity = tweetResponse.getEntity();
    InputStream tweetContent = tweetEntity.getContent();
    //process the results
    InputStreamReader tweetInput = new InputStreamReader(tweetContent);
    BufferedReader tweetReader = new BufferedReader(tweetInput);

    while ((lineIn = tweetReader.readLine()) != null) 
    {
        tweetFeedBuilder.append(lineIn);
    }

    try{
        // A Simple JSONObject Creation
        JSONObject json=new JSONObject(tweetFeedBuilder);
        Log.i("Tweets","<jsonobject>\n"+json.toString()+"\n</jsonobject>");

        String str1 = "result";
        JSONArray jarray = json.getJSONArray(str1);

        for(int i = 0; i < jarray.length(); i++){

            JSONObject c = jarray.getJSONObject(i);
            String id = c.getString(TWEET_ID);
            String text = c.getString(TWEET_TEXT);
        }
    }
    catch(JSONException jexp){
        jexp.printStackTrace();
    }

创建JSON对象后,JSONArray在创建时出错并进入catch块。实际上我想从JSON数据中获取“result”数组。

但是在创建时遇到了错误。我只想从JSON数据中获取user_id和文本。 我在android平台和eclipse sdk工作。

2 个答案:

答案 0 :(得分:1)

正如评论中已经提到的,您使用了错误的密钥。它应该是

String str1 = "results"; // you are using result

答案 1 :(得分:0)

(刚刚详细说明我的评论......)

如果仔细查看JSON响应,结果数组的关键不是result,而是results。因此,您应该通过以下方式获取JSONArray:

JSONArray jarray = json.getJSONArray("results");

另外,我注意到你想从每个数组项中获取“user_id”和“text”。请务必为用户使用正确的密钥:from_user_id