JSONArray中的Android JSONArrays

时间:2016-02-01 15:28:34

标签: android arrays json parsing jsonexception

这是我的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?

1 个答案:

答案 0 :(得分:2)

问题是在没有名称的另一个数组中有一个数组,你的错误可以像这样被忽略,

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"
    }
  ]
}