gpt4 book ai didi

javascript - 如何解析以数字为键的JSON

转载 作者:可可西里 更新时间:2023-11-01 02:21:33 24 4
gpt4 key购买 nike

我有以下 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 输出。

最佳答案

您需要使用 bracket notation :

console.log(jsonData.questions["9733"].text);

但是因为括号内的值会自动转换为字符串,所以这样也可以:

console.log(jsonData.questions[9733].text);

但是请注意,使用非字符串作为属性名称通常是错误的形式,并且可能导致一些微妙的问题,例如如果属性名称是 "001",则 [001]工作。

关于javascript - 如何解析以数字为键的JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23552708/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com