找到JSONObject找不到对象

时间:2013-02-06 04:01:54

标签: android json

我正在尝试解析以下JSON代码,但无法弄清楚。我正在使用下面的代码。但它无法找到对象。 getJsonObject查找名称,那么如何找到我的对象4106?

我的代码:

JSONObject structure = Utilities.getJSONFromUrl(url);
JSONObject jobj = structure.getJSONObject("4106");
Log.w("JSON", jobj.toString())

我的JSON:

{
    "id": 356,
    "hassubcategories": true,
    "subcategories": [
        {
            "id": 3808,
            "CategoryName": "Current Products",
            "CategoryImage": null,
            "hassubcategories": true,
            "subcategories": [
                {
                    "id": 4106,
                    "CategoryName": "Architectural",
                    "CategoryImage": "2637",
                    "hassubcategories": true,
                    "subcategories": [
                        {
                            "id": 391,
                            "CategoryName": "Flooring",
                            "CategoryImage": "2745",
                            "hassubcategories": false
                        }
                    ]
                }
            ]
        }
    ]
}

4 个答案:

答案 0 :(得分:1)

解析当前json以得到4106值:

JSONObject structure = Utilities.getJSONFromUrl(url);

JSONArray arrsubcategories= structure.getJSONArray("subcategories");
for(int i = 0; i < arrsubcategories.length(); i++){
  JSONObject jobj = arrsubcategories.getJSONObject(i);

  JSONArray arrsubcategoriesnew= jobj.getJSONArray("subcategories");
  for(int j = 0; j < arrsubcategoriesnew.length(); j++){
  JSONObject jobjnew = arrsubcategoriesnew.getJSONObject(j);
   // get id here
   String str_id=jobjnew.getString("id");
   String str_CategoryName=jobjnew.getString("CategoryName");
   ....
  Log.w("JSON", str_id)

  JSONArray arrsub_snew= jobjnew.getJSONArray("subcategories");

 }
}

答案 1 :(得分:0)

你必须使用json迭代来从你得到的json数据中得到你想要的东西:

1。JSONArray("subcategories")

2.get子数组JSONArray("subcategories")

3.最后获得对象array.getJSONObject("4106");

答案 2 :(得分:0)

使用类似的东西。

JSONObject sub = (JSONObject)structure.getJSONArray("subcategories").get(0);
JSONObject jobj = (JSONObject) sub.getJSONArray("subcategories").get(0);

答案 3 :(得分:0)

JSONObject structure = Utilities.getJSONFromUrl(url);
JsonObject subcat=struct.getJSONArray("subcategories").getJSONOBJECT(0);
JSONObject innersubcats = subcat.getJSONArray("subcategories").getJSONOBJECT(0);
String id = innersubcats.getstring("id");
log.i("ID OF Inner Subcategories",id);