我有这种结构的json对象。
{
"count": 3,
"result": {
"1": {
"brand_id": "1",
"brand_name": "Adidas",
"brand_image": "http://a.jpg"
},
"2": {
"brand_id": "2",
"brand_name": "Asics",
"brand_image": "http: //b.jpg"
},
"3": {
"brand_id": "3",
"brand_name": "Adidas adidas",
"brand_image": "http: //c.jpg"
}
}
}
这不是一个静态的。数量可能会有所不同。
我试过这样的。我不想用gson。我想解析一下。如何进行这样的数据结构。
JSONObject totalData=new JSONObject(results.toString());
JSONObject brandResults=totalData.getJSONObject("result");
// I can get output in this.
Log.e("Result output", brandResults.toString());
// this is not working
int brandCounts = brandResults.getInt("count");
Log.e("BRAND COUNTS", ""+brandCounts);
if (brandCounts > 0) {
for (int i = 0; i < brandCounts; i++) {
JSONObject items = brandResults.getJSONObject(Integer.toString(i));
String brand_id=items.getString("brand_id");
Log.e("Brand id", brand_id);
}
}
答案 0 :(得分:1)
这应该回答你的问题
int count = totalData.getInt("count");
您正在尝试从结果中获取计数,但您的计数位于JSONObject本身。
答案 1 :(得分:0)
检索计数时有一个简单的错误。请按以下方式更改此内容。
JSONObject totalData=new JSONObject(results.toString());
JSONObject brandResults=totalData.getJSONObject("result");
Log.e("Result output", brandResults.toString());
int brandCounts = totalData.getInt("count");
Log.e("BRAND COUNTS", ""+brandCounts);
if (brandCounts > 0) {
for (int i = 1; i <= brandCounts; i++) {
JSONObject items = brandResults
.getJSONObject(Integer.toString(i));
String brand_id=items.getString("brand_id");
Log.e("Brand id", brand_id);
}
}
快乐编码