【问题标题】:can not iterate through jasonArray properly and I get error无法正确遍历 jasonArray,我得到错误
【发布时间】:2015-04-15 18:45:48
【问题描述】:

我有一个json如下:

[
    {
        "id": 4,
        "name": "ff",
        "price": "ff",
        "unit": "Kg",
        "storeId": "2",
        "username": "fdf",
        "abb": "ff",
        "date": "02/11/2015"
    },
    {
        "id": 5,
        "name": "ff",
        "price": "ff",
        "unit": "Kg",
        "storeId": "2",
        "username": "yhyhyy",
        "abb": "ff",
        "date": "02/11/2015"
    }
]

现在我将这个作为字符串放在变量中,我想遍历 json 并获取数组中每个项目的名称和价格: 我找到了以下链接并遵循了该链接: link

这是我的代码:

JSONArray jsonArray = new JSONArray(sb);
JSONArray jsonPersonData = jsonArray.getJSONArray(0);
for (int i = 0; i < jsonPersonData.length(); i++) {
    JSONObject item = jsonPersonData.getJSONObject(i);
    String name = item.getString("name");
    String surname = item.getString("price");
}

但不幸的是,我收到以下错误:

JSONArray[0] 不是 JSONArray。

我不知道该怎么做?(我不想通过字符串操作来做)

【问题讨论】:

    标签: java json gson


    【解决方案1】:

    你应该试试这个:

    JSONArray jsonPersonData = new JSONArray(sb);
    for (int i = 0; i < jsonPersonData.length(); i++) {
        JSONObject item = jsonPersonData.getJSONObject(i);
        String name = item.getString("name");
        String surname = item.getString("price");
    }
    

    您收到错误是因为您的 JSON 数据是一组 JSON 对象,而您引用的链接包含的 JSON 数据包含多个 JSON 对象的 JSON 数组。

    【讨论】:

      【解决方案2】:

      json 字符串是一个包含两个对象的数组:[ {...}, {...} ]。您的代码首先通过new JSONArray(sb) 读取数组,然后将第一项作为另一个数组:jsonArray.getJSONArray(0)。它应该已经读取了那里的对象。

      【讨论】:

        猜你喜欢
        • 2021-05-06
        • 2018-02-03
        • 1970-01-01
        • 1970-01-01
        • 2014-03-11
        • 1970-01-01
        • 2018-04-11
        • 2021-01-25
        • 1970-01-01
        相关资源
        最近更新 更多