Tôi có đoạn mã sau đây, tôi không có bất kỳ kiểm soát nào đối với đầu ra này.Cách phân tích cú pháp JSON bằng số làm khóa
{
"questions": {
"9733": {
"text": "Star Trek or Star Wars?",
"answers": {
"41003": "Star Trek",
"41004": "Star Wars",
"41005": "Neither is superior in my opinion; both great in their own ways",
"41006": "Not a fan",
"41007": "I don't have an opinion on this"
}
},
"25272": {
"text": "Which of these summer movies are you looking forward to the most?",
"answers": {
"99545": "World War Z",
"99546": "Monsters University ",
"99547": "White House Down",
"99548": "Man of Steel",
"99549": "Lone Ranger",
"99550": "The Wolverine"
}
},
"27547": {
"text": "Should the U.S. attack Syria?",
"answers": {
"107453": "Yes",
"107454": "No"
}
}
}
}
Tôi đang sử dụng json.parse để phân tích cú pháp này. Để có được văn bản của câu hỏi đầu tiên tôi thường làm một cái gì đó như thế này.
var jsonData = JSON.parse(data);//Where data = the json above
console.log(jsonData.questions.9733.text);//Obviously this fails
Tuy nhiên, javascript không thích số đó rõ ràng. Bạn khuyên bạn nên truy cập vào văn bản của câu hỏi đầu tiên như thế nào? Tôi muốn các json được thiết lập tốt hơn với trong một loạt các câu hỏi để thay thế. Thật không may tôi không có bất kỳ kiểm soát đầu ra của JSON này.
Tôi cũng sẽ không nhận thức được những gì các phím là khi họ đi qua, nhưng đó là một vấn đề khác. Tôi sẵn sàng giải trí mọi đề xuất về cách phân tích cú pháp điều này vì tôi chưa bao giờ phải phân tích cú pháp đầu ra JSON lạ như vậy.
tôi sẽ chỉ sử dụng 'jsonData [ 'câu hỏi'] [ '9733'] [ 'text']' – NullUserException
'jsonData.questions [9733] .text' nên làm việc. 'foo.bar' và' foo ['bar'] 'tương đương trong JS. – IMSoP