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 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 に答える
0

取得しているjsonデータから必要なものを取得するには、jsonを反復する必要があります。

1.JSONArray("subcategories")

2.サブ配列を取得するJSONArray("subcategories")

3.最後にオブジェクトを取得します array.getJSONObject("4106")

于 2013-02-06T04:07:30.100 に答える
0

このようなものを使用してください。

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