我有以下的JSON数据,可惜我无法控制这个输出。
我将使用json.parse来解析这个内容。要获取第一个问题的文本,我通常会执行以下操作。
然而,显然JavaScript不喜欢那个数字。你如何建议访问第一个问题的文本?我更喜欢将json设置为问题数组。不幸的是,我无法控制此JSON的输出。
另外,当它们出现时,我也不知道键是什么,但这是完全不同的问题。我愿意接受任何关于如何解析这个奇怪的JSON输出的建议。
{
"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"
}
}
}
}
我将使用json.parse来解析这个内容。要获取第一个问题的文本,我通常会执行以下操作。
var jsonData = JSON.parse(data);//Where data = the json above
console.log(jsonData.questions.9733.text);//Obviously this fails
然而,显然JavaScript不喜欢那个数字。你如何建议访问第一个问题的文本?我更喜欢将json设置为问题数组。不幸的是,我无法控制此JSON的输出。
另外,当它们出现时,我也不知道键是什么,但这是完全不同的问题。我愿意接受任何关于如何解析这个奇怪的JSON输出的建议。
jsonData['questions']['9733']['text']
。 - NullUserExceptionjsonData.questions[9733].text
应该可以工作。在 JS 中,foo.bar
和foo['bar']
是等价的。 - IMSoPjsonData.questions.9733.text
呢?我不知道。 - Atul