获取json数组长度和循环

时间:2015-01-01 16:06:58

标签: android json arrays

所以我有像这样的网络服务的json响应

{
    error: false
    types: [2]
    -0:  {
        card_type_id: 5
        category: "Food & Beverages"
    }
    -1:  {
        card_type_id: 8
        category: "Entertaiment"
    }
}

我想要做的是获取json数组内的数字"类型"并使用它来循环设置将在listview中使用的arraylist的值,但我的代码似乎并且无法获取json数组长度,这是我的代码

JSONObject obj = new JSONObject(response);
if(!obj.getBoolean("error")){
    JSONArray types = obj.getJSONArray("types");
    for(int i=0; i<types.length();i++)
    {
        JSONObject a = types.getJSONObject(i);
        int ct_id = a.getInt("card_type_id");
        String category = a.getString("category");

        CardType ct = new CardType();
        ct.setTypeId(_ct_id);
        ct.setTypeCategory(_category);

        categoryArray.add(ct);
    }
}

任何人都可以帮助我吗?先谢谢

2 个答案:

答案 0 :(得分:0)

这是你的JSON响应可能看起来的样子(注意键和字符串值应该用双引号括起来):

{
    "error": false,
    "types": [
        {
            "card_type_id": 5,
            "category": "Food & Beverages"
        },
        {
            "card_type_id": 8,
            "category": "Entertaiment"
        }
    ]
}

此示例中的JSONArray“types”的长度(types.length())为2.现在,您可以实现for-loop并获得预期的结果。

答案 1 :(得分:0)

实际上从高级休息客户端看到json只是我的错,我使用json菜单和应用程序自动纠正json并变为无效,在我更改为原始菜单后,我可以看到实际的json和纠正代码