无法访问JSON数据

时间:2015-05-12 17:47:55

标签: javascript jquery ajax json

我在使用AJAX调用访问我的JSON数据时遇到了一些麻烦。

JSON

{
    "Ongoing": [
        {"name": "meh"},
        {"name": "hem"}
    ],
    "Completed": [
        {"name": "kfg"},
        {"name": "dkfgd"}
    ]
}

JS

$.ajax({
    type: "GET",
    dataType: "json",
    url: "script/projects.json",
    complete: function(data){
        for(var i = 0; i < data.Ongoing.length; i++){
            console.log(data.Ongoing[i].name);
        }

    }
})

当我写入控制台时,出现以下错误:

TypeError: Cannot read property 'length' of undefined

因此,由于某种原因,它正在回应数组是未定义的。

我已将JSON传递给验证器,因此我知道它是有效的JSON。我知道jQuery的$.ajax会自动解析JSON。所以我很困惑,我应该能够像普通对象一样访问数据。任何人都可以向我解释我做错了什么,并提供解释如何解决它?

下图显示了简单地向控制台显示data的内容。 enter image description here

4 个答案:

答案 0 :(得分:0)

您的Ongoing是一个数组,因此您首先要访问一个元素:

console.log(data.Ongoing[0].name);

答案 1 :(得分:0)

您的Ongoing属性包含数组

"Ongoing": [ {"name": "meh"}, {"name": "hem"} ]

要访问一个,您可以通过循环

来完成
$.each(data.Ongoing, function(index, value) {
   console.log(value.name);
});

答案 2 :(得分:0)

您必须通过网络服务器加载该文件,然后使用file://加载该文件,但您可以使用--allow-file-access-from-files标记在Chrome中覆盖此文件

请参阅:Trying to load local JSON file to show data in a html page using JQuery

答案 3 :(得分:0)

代码很好。您的问题出在请求中。检查网址