以下是我的json文件的相关部分:
"categories": [
[
"Belgian Restaurant",
"belgian"
],
[
"Brasserie",
"brasseries"
]
],
我想做的是从第二个
JSONArray
(比如说“brasseries”)中检索信息。以下代码用于从第一个数组检索信息:
JSONArray categories = jsonObject.getJSONArray("categories");
restaurant.setCat1(categories.getJSONArray(0).getString(1));
结果正如预期的那样是“比利时的”,但是我在第二个数组中尝试了同样的方法:
restaurant.setCat2(categories.getJSONArray(1).getString(1));
这引发了一个jsonexception
我没有得到它,因为索引0和1显然存在于文件中…为什么0工作而不是1?
最佳答案
问题是另一个数组中有一个数组没有名称,您的错误可以这样忽略,
restaurant.setCat2(categories.getJSONArray(0).getString(1));
在为任何
JSON
数据编码之前,您应该始终检查它是否正确,由于问题中的
JSON
缺少要迭代的不同值的KEY's
,如果内部对象不断地改变其变量,则很难获得信息(任何增加或减少都会导致错误的结果)。
尝试用键值对生成
JSON
,例子
{
"categories": [
{
"id": "00",
"name": "Some_name_0"
},
{
"id": "01",
"name": "Some_name_1"
},
{
"id": "02",
"name": "Some_name_2"
},
{
"id": "03",
"name": "Some_name_3"
},
{
"id": "04",
"name": "Some_name_4"
}
]
}