JSONArray中的JSONArray

时间:2014-04-24 10:30:55

标签: java json arrays

我目前很困惑为什么我不能在我的Android应用程序中从JSONArray中提取JSONArray。我的源代码的示例和片段如下所示。

//The JSON

   {
     "currentPage":1,
     "data":[
        {
          "id":"dimtrs",
          "name":"Bud Light",
          "breweries":[
              {
                "id":"BznahA",
                "name":"Anheuser-Busch InBev",
              }
           ]
        }
    ],
    "status":"success"
  }

现在,我正试图改造啤酒厂"阵列。

//Code Snippet

...

JSONObject jsonobject = new JSONObject(inputLine);

JSONArray jArray = jsonobject.getJSONArray("data");

JSONArray jsArray = jArray.getJSONArray("breweries");

...

我可以很好地从数据阵列中提取对象,但我无法获得"啤酒厂"来自"数据的数组"数组使用我当前的代码。

jsArray的错误是:

  

JSONArray类型中的方法.getJSONArray(int)不适用于参数String

那么拉动"啤酒厂的正确方法是什么?排出数据"数据"阵列

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:3)

这是因为"啤酒厂"是"数据"的第一个对象。数组,不直接在数组本身。您正试图从阵列中获取密钥。

所以你想要调用jArray.getJSONObject(0).getJSONArray("breweries");或类似的东西。

正如Sambhav Sharma在评论中解释的那样,错误的原因是JSONArray的get方法需要int而不是String作为参数。