如何解析定义了计数的 JSON 对象

How to parse JSON object with count defined

我有 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);
    }
}

当您按以下方式检索 count.Change this 时,有一个简单的错误。

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

            }
        }

快乐编码

这应该可以回答您的问题

 int count = totalData.getInt("count");

您正在尝试从结果中获取计数,但您的计数驻留在 JSONObject 本身中。