Android JSONArray 中的 JSONArray
Android JSONArrays inside JSONArray
这是我的 json 文件的相关部分:
"categories": [
[
"Belgian Restaurant",
"belgian"
],
[
"Brasserie",
"brasseries"
]
],
我想做的是从第二个 JSONArray
中检索信息(例如 "brasseries")。
以下代码用于从第一个数组中检索信息:
JSONArray categories = jsonObject.getJSONArray("categories");
restaurant.setCat1(categories.getJSONArray(0).getString(1));
结果如预期的那样 "belgian",但随后我对第二个数组进行了相同的尝试:
restaurant.setCat2(categories.getJSONArray(1).getString(1));
然后抛出 Index 1 out of range [0..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"
}
]
}
这是我的 json 文件的相关部分:
"categories": [
[
"Belgian Restaurant",
"belgian"
],
[
"Brasserie",
"brasseries"
]
],
我想做的是从第二个 JSONArray
中检索信息(例如 "brasseries")。
以下代码用于从第一个数组中检索信息:
JSONArray categories = jsonObject.getJSONArray("categories");
restaurant.setCat1(categories.getJSONArray(0).getString(1));
结果如预期的那样 "belgian",但随后我对第二个数组进行了相同的尝试:
restaurant.setCat2(categories.getJSONArray(1).getString(1));
然后抛出 Index 1 out of range [0..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"
}
]
}