0

我正在尝试解析以下 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

4 回答 4

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");

 }
}
于 2013-02-06T04:09:57.583 回答
0

使用这样的东西。

JSONObject sub = (JSONObject)structure.getJSONArray("subcategories").get(0);
JSONObject jobj = (JSONObject) sub.getJSONArray("subcategories").get(0);
于 2013-02-06T04:08:38.463 回答
0

您必须迭代 json 以从您获得的 json 数据中获取您想要的内容:

1.JSONArray("subcategories")

2.获取子数组JSONArray("subcategories")

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

于 2013-02-06T04:07:30.100 回答
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);
于 2013-03-05T13:24:49.093 回答