Czy istnieje sposób na zagnieżdżenie obiektów w JSON, aby nie musieć tworzyć tablic ze wszystkiego? Aby mój obiekt mógł zostać przeanalizowany bez błędów, potrzebuję takiej struktury:
{"data":[{"stuff":[
{"onetype":[
{"id":1,"name":"John Doe"},
{"id":2,"name":"Don Joeh"}
]},
{"othertype":[
{"id":2,"company":"ACME"}
]}]
},{"otherstuff":[
{"thing":
[[1,42],[2,2]]
}]
}]}
Jeśli pobieram ten obiekt do zmiennej o nazwie „result”, muszę uzyskać dostęp do zagnieżdżonych obiektów w następujący sposób:
result.data[0].stuff[0].onetype[0]
i
result.data[1].otherstuff[0].thing[0]
Wydaje mi się to niezdarne i zbędne, jeśli to możliwe, wolałbym:
result.stuff.onetype[0]
i
result.otherstuff.thing
Ale jak mogę bezpośrednio używać kluczy obiektów, gdy wszystko jest tablicą? Dla mojego zdezorientowanego i niewykształconego umysłu coś takiego wydawałoby się bardziej odpowiednie:
{"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]]
}
}
}
Prawdopodobnie źle zrozumiałem tutaj coś fundamentalnego, ale nie mogę uzyskać parsera jQuery (ani natywnego parsera FF używanego przez jQuery 1.4) do zaakceptowania drugiego obiektu stylu. Jeśli ktokolwiek może mnie oświecić, będzie to z wdzięcznością!
{"id":2,"name": ""}
. Jednak o to mniej więcej pyta, więc nie jestem pewien.
{"stuff": ..., "otherstuff": ...}