C'è un modo per avere oggetti annidati in JSON in modo da non dover creare array da tutto? Affinché il mio oggetto possa essere analizzato senza errori, mi sembra di aver bisogno di una struttura come questa:
{"data":[{"stuff":[
{"onetype":[
{"id":1,"name":"John Doe"},
{"id":2,"name":"Don Joeh"}
]},
{"othertype":[
{"id":2,"company":"ACME"}
]}]
},{"otherstuff":[
{"thing":
[[1,42],[2,2]]
}]
}]}
Se prendo questo oggetto in una variabile chiamata "risultato" devo accedere agli oggetti annidati in questo modo:
result.data[0].stuff[0].onetype[0]
e
result.data[1].otherstuff[0].thing[0]
Questo mi sembra goffo e ridondante, se possibile preferirei:
result.stuff.onetype[0]
e
result.otherstuff.thing
Ma come posso usare direttamente le chiavi dell'oggetto quando tutto è un array? Alla mia mente confusa e non istruita qualcosa del genere sembrerebbe più appropriato:
{"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]]
}
}
}
Probabilmente ho frainteso qualcosa di fondamentale qui, ma non riesco a far sì che il parser jQuery (né il parser FF nativo utilizzato da jQuery 1.4) accetti il secondo oggetto di stile. Se qualcuno mi può illuminare, sarebbe apprezzato con gratitudine!
{"id":2,"name": ""}
. Tuttavia, è più o meno quello che sta chiedendo, quindi non ne sono sicuro.
{"stuff": ..., "otherstuff": ...}