2013-02-06 69 views
0

我想解析下面的JSON代碼,並不能弄明白。我正在使用下面的代碼。但它不能找到對象。 getJsonObject查找名稱,那麼如何查找我的對象4106?找到JSONObject沒有找到對象

我的代碼:

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 
         } 
        ] 
       } 
      ] 
     } 
    ] 
} 
+2

提示 - 這裏是你如何用JavaScript做到這一點:'structure.subcategories [0] .subcategories [0]' –

回答

0

必須迭代器中的JSON得到你想要的東西從你所得到的JSON數據:

1. JSONArray("subcategories")

2.get sub array JSONArray("subcategories")

3.最後得到對象array.getJSONObject("4106");

0

使用類似這樣的東西。

JSONObject sub = (JSONObject)structure.getJSONArray("subcategories").get(0); 
JSONObject jobj = (JSONObject) sub.getJSONArray("subcategories").get(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"); 

} 
} 
+0

謝謝!下一步我需要讀取所有值,但首先我必須找到一個值是否存在,您的代碼是否很好。如果列表顯着更大,並且我想要將每個值映射到包含所有相關變量的類JSON字段。我會使用類似JSONReader的東西嗎? – ios85

+0

@ ios85:不需要使用用戶JSONReader,因爲它可以從最新的API獲得。你可以用代碼編輯你試過的問題嗎? –

+0

我還沒有開始編寫這個部分,只是想着我應該做什麼。基本上JSON將返回一個更大的結構,我不想發佈整個事情,因爲它的巨大(任何級別)。但首先,我需要驗證存在的特定類別,然後我需要遍歷整個JSON,然後將每個對象映射到類的新實例。 – ios85

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