我在这里有一篇很长的帖子,里面有很多数据和示例代码,但我想我已经意识到这个问题了,我只是在寻找确认。
具体来说,当使用json是一个JSONObject的json.getJSONArray(TAG)时,这只适用于离阵列最近的JSONObject? IE,如果有
{"obj1": {"obj2": {"obj3": {"array":[]}}}}
然后调用必须在object3.getJSONArray上?我以为我可以拉出任何阵列而不管嵌套,但看起来并非如此?
干杯
答案 0 :(得分:3)
在您的情况下,您应该使用
obj1.getJSONObject("obj1").getJSONObject("obj2").getJSONObject("obj3").getJSONArray("array");
到达那个嵌套数组。
答案 1 :(得分:0)
这是正确getJSONArray
正在您实际所在级别上搜索数组对象。
要获得数组,你应该去:
JSONObject mainObject = new JSONObject("{Oject 1: {Object 2: {Object 3: {[ARRAY]}}}}")
JSONObject object1 = mainObject.getJSONObject("object 1");
and so on till...
JSONArray object1 = object2.getJSONArray("object 3");
答案 2 :(得分:0)
您可以阅读有关JSON格式here的信息。
考虑这两个Java类
public class Foo {
private Bar bar;
private String value;
}
public class Bar {
private int count;
}
和对象
Foo foo = new Foo();
foo.value = "some value";
Bar bar = new Bar();
bar.count = 42;
foo.bar = bar;
你可以吗
foo.count = 100;
?答案是不。字段count
属于Bar
对象,而不属于Foo
对象。
同样的事情适用于JSON。
{
"bar": {
"count": 42
},
"value": "some value"
}
count
元素是一个JSON原语,属于名为bar
的JSON对象。
(事实上它是一个JSON数组是无关紧要的。)