2013-02-06 44 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);