我在使用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
的内容。
答案 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)
代码很好。您的问题出在请求中。检查网址