有什么方法可以在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.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.