以下是我的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"
    }
  ]
}

09-09 21:36
查看更多