我正在尝试解析以下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
}
]
}
]
}
]
}
答案 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);