在脚本中访问外部JSON文件属性

时间:2018-01-18 05:32:53

标签: javascript jquery json

在发布我的问题之前,我已经搜索了互联网以试图解决这个问题。我已经在使用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 

3 个答案:

答案 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;

这个有效!查看!