在发布我的问题之前,我已经搜索了互联网以试图解决这个问题。我已经在使用jQuery,所以如果解决方案需要jQuery,这很好。
下面是我外部JSON的第一个小片段。以下是所述JSON的目录路径:/data/quiz.json
[{
"doc" : [{
"name": "Q1",
"question" : "Why?",
"choice" : [{
"value" : "A1",
"answer" : "True"
},
{
"value" : "A2",
"answer" : "False"
}]
}]
}]
我已在html文件中正确链接到此脚本(在我的app.js
文件上方)。
第一个属性 - " doc
" - 变量,它存储在名为" id
"的变量中。
为什么以下代码不会记录" Q1"?
var data = $.getJSON("/data/quiz.json"),
test = data[id][0].name;
console.log(test); // TypeError: Cannot read property '0' of undefined
答案 0 :(得分:1)
尝试以下代码段
$.getJSON( "/data/quiz.json", function( data) {
var test = data[0][id][0].name;
console.log(test); //
});
答案 1 :(得分:0)
尝试下面的一个:
var test1 = data[0].doc[0].name;
console.log(test1);
答案 2 :(得分:0)
从给定的细节中可以清楚地看到 data 变量被一个带有单个对象的数组初始化。
访问媒体名称。
您可以使用以下任何一种方式。
var method1 = data[0]["doc"][0].name;
// OR
var method2 = data[0].doc[0].name;
// both prints "Q1" if console logged.
如果您使用单独的变量 id 来存储值" doc" 你可以通过以下方式进行方法
var id = "doc";
var method1 = data[0][id][0].name;
这个有效!查看!