Android解析数组内的json对象

时间:2015-03-30 10:20:43

标签: android json

我想要解析“name”和“id”的详细信息,这里是我的json和android代码

{
  "main": {
    "details": [
      {
        "name": "name1", 
        "id": "id1"
      }, 
      {
        "name": "name2", 
        "id": "id2"
      }
     ] 
   } 
 }

我的代码是:

try {
    JSONObject jsono = new JSONObject(url);
    SONArray jarray = jsono.getJSONArray("main");

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

        Actors actor = new Actors();
        actor.setLink(object.getString("name"));
        actor.setImage(object.getString("id"));
        actorsList.add(actor);
        }
    return true;
}

我想要把“id”和“name”

4 个答案:

答案 0 :(得分:2)

尝试这样:

JSONObject totalObject = new JSONObject(result);
        JSONObject mainObject = totalObject.getJSONObject("main");
        JSONArray jsonArray = mainObject.getJSONArray("details");
        for (int i = 0; i < jsonArray.length(); i++) {
            JSONObject object = (JSONObject) jsonArray.get(i);
              Actors actor = new Actors();
                actor.setLink(object.getString("name"));
                actor.setImage(object.getString("id"));
                actorsList.add(actor);
        }

答案 1 :(得分:0)

按照这种方式:

try {
JSONObject jsono = new JSONObject(url);
SONArray jarray = jsono.getJSONArray("main");

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

    String name = object.getString("name");
    String id = object.getString("id");
    }
return true;
}

答案 2 :(得分:0)

mainJSONObjectdetailsJSONArray,因此声明jarray的正确代码如下:

JSONArray jarray = jsono.getJSONObject("main").getJSONArray("details");

答案 3 :(得分:0)

你有一个JSONObject“main”,包含一个JSONOArray“details”。这意味着您必须致电getJSONObject("main").getJSONArray("details");

如果您要多次进行此类解析,我建议您查看Gson - 使用它会更容易。您必须为SerializableName类的链接和图像字段设置Actor属性,Gson会注意使用json中的值映射它们。