如何解析定义了count的JSON对象

时间:2015-01-01 13:00:05

标签: java json

我有这种结构的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);
    }
}

2 个答案:

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

            }
        }

快乐编码