繁体   English   中英

无法访问JSON数据

[英]Trouble accessing JSON data

我在通过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写入控制台显示的内容。 在此处输入图片说明

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

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

您的Ongoing属性包含一个数组

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

要访问一个,您可以循环执行

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

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

请参阅: 尝试使用JQuery加载本地JSON文件以在html页面中显示数据

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM