我有一个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。
我不知道怎么做?(我不想通过字符串操作来实现)
答案 0 :(得分: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数组。
答案 1 :(得分:0)
json字符串是一个包含两个对象的数组:[ {...}, {...} ]
。您的代码首先通过new JSONArray(sb)
读取数组,然后将第一个项目作为另一个数组:jsonArray.getJSONArray(0)
。它应该已经读取了那里的对象。