我想解析以下JSon数组中的所有name和id属性: JSon link
我尝试使用以下代码但无法正常工作。我得到了
org.json.JSONException: Value [{"id":0,"name":"Alsópetény"}] at 0 of type org.json.JSONArray cannot be converted to JSONObject
异常
我的代码:
JSONArray jsonarray = new JSONArray(jsonList);
for (int i = 0; i < jsonarray.length(); i++) {
JSONObject jsonobject = jsonarray.getJSONObject(i);
String id= jsonobject.getString("id");
String name= jsonobject.getString("name");
System.out.print("ID:\n"+id+"");
System.out.print("NAME:\n"+name+"");
}
答案 0 :(得分:4)
你的(我从你发布的链接中可以看到)是一个单独的JSON消息{...},它包含许多节点(“A”,“B”,“E”,“F”......等等)。每个节点都是一个包含一些JSON对象的JSON数组。
你必须首先获得JSON对象:“A”,“B”,......这样:
String result = EntityUtils.toString(response.getEntity()); //the result of HTTP call
JSONObject JO = new JSONObject(result);
JSONArray ja = JO.getJSONArray("A");
JSONArray jb = JO.getJSONArray("B");
...
然后你必须访问JsonArray元素:
for(int i=0; i< ja.length(); i++){
JSONObject jo = ja.getJSONObject(i);
String id = jo.getString("id");
String name = jo.getString("name");
System.out.println("id: " + id + "");
System.out.println("name: " + name + "");
}