มีวิธีใดบ้างที่จะมีวัตถุซ้อนกันใน 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 (หรือตัวแยกวิเคราะห์ FF ดั้งเดิมที่ใช้โดย jQuery 1.4) เพื่อยอมรับวัตถุสไตล์ที่สอง หากใครสามารถสอนฉันได้ก็จะต้องขอบคุณอย่างยิ่ง!
{"stuff": ..., "otherstuff": ...}