2013-04-22 106 views
0

我有一个JSON响应异常而转换“JSONArray不能被转换为JSONObject的错误”

  {"as_of":"2013-04-22T19:50:41Z","trends":[{"events":null, 
      "query":"%23RhymeATweepsName","url":"http:\/\/twitter.com\/search? 
      q=%23RhymeATweepsName","promoted_content":null, 
      "name":"#RhymeATweepsName"},     
      {"events":null,"query":"%23EarthDayPK","url": 
      "http:\/\/twitter.com\/search? 
      =%23EarthDayPK","promoted_content":null,"name": 
      "#EarthDayPK"}],"locations": 
      [{"woeid":*******,"name":"********"}],"created_at":"2013-04-22T19:38:16Z"} 

,我用下面的代码

   jArray = new JSONArray(result); 
       JSONObject post = null; 
       for (int ii = 0; ii < jArray.length(); ii++) { 
        post = jArray.getJSONObject(ii); 
        String name = post.getJSONObject("trends").getString("name") + "\n"; 
       } 
      } 

解析它,但它抛出异常“JSONArray不能被转换为JSONObject错误“

+2

''trends''是一个数组的异常状态。 – harism 2013-04-22 19:57:25

+0

是的。方案? – 2013-04-22 20:00:35

+0

@ExtremeProgrammer我猜在getJSONObject方法的某处有一个getJSONArray方法? – 2013-04-22 20:01:31

回答

4

在您的JSON中看到,trends不是JSONObject,而是JSONArray

"trends":[ 
    { 
     "events":null, 
     "query":"%23RhymeATweepsName", 
     "url":"http:\/\/twitter.com\/search? q=%23RhymeATweepsName", 
     "promoted_content":null, 
     "name":"#RhymeATweepsName" 
    }, 
    { 
     "events":null, 
     "query":"%23EarthDayPK", 
     "url":"http:\/\/twitter.com\/search? =%23EarthDayPK", 
     "promoted_content":null, 
     "name":"#EarthDayPK" 
    } 
] 

你应该分析它几乎是这样的:

String name = post.getJSONArray("trends").getJSONObject(0).getString("name"); 
//          or iterate... ^^ 
+0

是的,那么如何解析呢? – 2013-04-22 19:59:29

+0

你只需要读取趋势数组,'趋势= JSONArray(“趋势”)',然后遍历它们。 – Supericy 2013-04-22 20:01:34

+0

@ExtremeProgrammer - 刚编辑。 – MByD 2013-04-22 20:02:04

相关问题