无法正确遍历 jasonArray,出现错误
can not iterate through jasonArray properly and I get error
我有一个 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 并遵循了它:
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] is not a JSONArray.
我不知道怎么办?(我不想通过字符串操作来完成)
你应该试试这个:
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 个对象的数组,而您引用的 link 有 JSON 个数据,其中包含多个 JSON JSON 个对象的数组。
json 字符串是一个包含两个对象的数组:[ {...}, {...} ]
。您的代码首先通过 new JSONArray(sb)
读取数组,然后获取第一项作为另一个数组:jsonArray.getJSONArray(0)
。它应该读取那里已经存在的对象。
我有一个 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 并遵循了它: 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] is not a JSONArray.
我不知道怎么办?(我不想通过字符串操作来完成)
你应该试试这个:
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 个对象的数组,而您引用的 link 有 JSON 个数据,其中包含多个 JSON JSON 个对象的数组。
json 字符串是一个包含两个对象的数组:[ {...}, {...} ]
。您的代码首先通过 new JSONArray(sb)
读取数组,然后获取第一项作为另一个数组:jsonArray.getJSONArray(0)
。它应该读取那里已经存在的对象。