繁体   English   中英

从JSON对象获取数组

[英]Getting an array from a JSON Object

好吧,我在这里发表了一篇很长的文章,其中包含大量数据和示例代码,但是我想我已经意识到了这个问题,并且只是在寻求确认。

具体来说,当使用json.getJSONArray(TAG)时(其中json是JSONObject),这仅适用于距离数组最近的JSONObject吗? IE,如果有

{"obj1": {"obj2": {"obj3": {"array":[]}}}} 

那么调用必须在object3.getJSONArray上? 我以为我可以抽出任何数组而不管嵌套如何,但事实并非如此?

干杯

在您的情况下,您应该使用

  obj1.getJSONObject("obj1").getJSONObject("obj2").getJSONObject("obj3").getJSONArray("array");

到达那个嵌套数组。

没错, getJSONArray在实际级别上搜索数组对象。

要获取Array,您应该去: 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"); 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");

您可以在此处阅读有关JSON格式的信息

考虑这两个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数组的事实是无关紧要的。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM