javascript – 嵌套JSON对象 – 我必须使用数组的一切吗?

有什么办法在JSON中有嵌套对象,所以我不必使数组的一切?为了我的对象被解析没有错误我似乎需要一个这样的结构:

{"data":[{"stuff":[
    {"onetype":[
        {"id":1,"name":"John Doe"},
        {"id":2,"name":"Don Joeh"}
    ]},
    {"othertype":[
        {"id":2,"company":"ACME"}
    ]}]
},{"otherstuff":[
    {"thing":
        [[1,42],[2,2]]
    }]
}]}

如果我把这个对象转换成一个名为“result”的变量,我必须像这样访问嵌套的对象:

result.data[0].stuff[0].onetype[0]

result.data[1].otherstuff[0].thing[0]

这似乎笨拙和多余的我,如果可能,我宁愿:

result.stuff.onetype[0]

result.otherstuff.thing

但是当一切都是数组时,如何直接使用对象键呢?对我来说,这种混乱和未受教育的东西似乎更为合适:

{"data":
    {"stuff":
        {"onetype":[
            {"id":1,"name": ""},
            {"id":2,"name": ""}
        ]}
        {"othertype":[
            {"id":2,"xyz": [-2,0,2],"n":"Crab Nebula","t":0,"c":0,"d":5}
        ]}
    }
    {"otherstuff":
        {"thing":
            [[1,42],[2,2]]
        }
    }
}

我可能误解了一些根本的东西,但我不能得到jQuery解析器(也不是由jQuery 1.4使用的本地FF解析器)接受第二个样式对象。如果任何人可以启发我,这将是感激的赞赏!

您不需要使用数组。

JSON值可以是数组,对象或原语(数字或字符串)。

你可以这样写JSON:

{ 
    "stuff": {
        "onetype": [
            {"id":1,"name":"John Doe"},
            {"id":2,"name":"Don Joeh"}
        ],
        "othertype": {"id":2,"company":"ACME"}
    }, 
    "otherstuff": {
        "thing": [[1,42],[2,2]]
     }
}

你可以这样使用它:

obj.stuff.onetype[0].id
obj.stuff.othertype.id
obj.otherstuff.thing[0][1]  //thing is a nested array or a 2-by-2 matrix.
                            //I'm not sure whether you intended to do that.
http://stackoverflow.com/questions/2098276/nested-json-objects-do-i-have-to-use-arrays-for-everything

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:javascript – 嵌套JSON对象 – 我必须使用数组的一切吗?