Có cách nào để có các đối tượng lồng nhau trong JSON để tôi không phải tạo mảng từ mọi thứ không? Để đối tượng của tôi được phân tích cú pháp mà không gặp lỗi, tôi dường như cần một cấu trúc như sau:
{"data":[{"stuff":[
{"onetype":[
{"id":1,"name":"John Doe"},
{"id":2,"name":"Don Joeh"}
]},
{"othertype":[
{"id":2,"company":"ACME"}
]}]
},{"otherstuff":[
{"thing":
[[1,42],[2,2]]
}]
}]}
Nếu tôi tìm nạp đối tượng này vào một biến có tên "result", tôi phải truy cập vào các đối tượng lồng nhau như sau:
result.data[0].stuff[0].onetype[0]
và
result.data[1].otherstuff[0].thing[0]
Điều này có vẻ vụng về và thừa đối với tôi, nếu có thể tôi muốn:
result.stuff.onetype[0]
và
result.otherstuff.thing
Nhưng làm thế nào tôi có thể sử dụng các khóa đối tượng trực tiếp khi mọi thứ đều là một mảng? Đối với tâm trí hoang mang và thiếu học thức của tôi, điều gì đó như thế này có vẻ thích hợp hơn:
{"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]]
}
}
}
Có lẽ tôi đã hiểu sai điều gì đó cơ bản ở đây, nhưng tôi không thể nhận được trình phân tích cú pháp jQuery (cũng như trình phân tích cú pháp FF gốc được sử dụng bởi jQuery 1.4) để chấp nhận đối tượng kiểu thứ hai. Nếu ai đó có thể khai sáng cho tôi, nó sẽ rất biết ơn!
{"id":2,"name": ""}
. Tuy nhiên, đó ít nhiều là những gì anh ấy đang yêu cầu, vì vậy tôi không chắc.
{"stuff": ..., "otherstuff": ...}