我目前很困惑为什么我不能在我的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
那么拉动"啤酒厂的正确方法是什么?排出数据"数据"阵列
提前感谢您的帮助!
答案 0 :(得分:3)
这是因为"啤酒厂"是"数据"的第一个对象。数组,不直接在数组本身。您正试图从阵列中获取密钥。
所以你想要调用jArray.getJSONObject(0).getJSONArray("breweries");
或类似的东西。
正如Sambhav Sharma在评论中解释的那样,错误的原因是JSONArray的get方法需要int而不是String作为参数。