2012-04-11 69 views
-1
public void HelloWord { 
     for (int i = 0; i < 20; i++) { 
      Log.d("Great"); 
     } 
    } 

上面的代码不起作用为什么? 我尝试获得价值名称 有人知道问题在哪里吗?android如何解析json

org.json.JSONException:值...链接...在在org.json.JSONArray org.json.JSON.typeMismatch的内容。

+1

也许是因为它与解析JSON响应无关? – MByD 2012-04-11 17:47:49

+0

它没有任何关系?我发现代码并使用它,如果我把那里另一个JSON链接,它的工作原理... – 2012-04-11 17:53:03

+1

这不是在此之前的代码:) – MByD 2012-04-11 17:56:09

回答

0

我认为你错过了JSON的工作方式。 {}中的任何内容都是对象,而[]指定一个数组。因此,Twitter的饲料的根源是一个JSONObject,而不是一个JSONArray:

尝试更多的东西是这样的:

JSONObject obj = new JSONObject(mStringBuilder.toString()); 
JSONObject trends = obj.getJSONObject("trends"); 
JSONArray today = trends.getJSONArray("2012-04-10"); 
for (int i = 0; i < today.length(); i++) { 
    JSONObject tag = today.getJSONObject(i); 
    String name = tag.getString("name"); 
    // do whatever with name 
} 

容易得多,而且它更清晰它是如何工作的。一个JSONObjects是字典,用键和值之间的简单的映射 - 每个对象({})可以包含多个对象,或阵列([]),其可以包含简单整数或多个对象

+0

有一个错误... 2012-04-10没有值为什么? – 2012-04-11 18:11:10

+0

你是完全正确的。已删除回答:) – MByD 2012-04-11 18:15:31

+0

@ user1106177因为我输错了它 - 它应该是'trends.getJSONArray()',而不是'obj.getJSONArray()' - 我在我的回复中更正了它 – JRaymond 2012-04-11 18:17:16