Javascript 无法访问$.getJSON返回的对象的属性
我得到一个.json文件,并使用Javascript 无法访问$.getJSON返回的对象的属性,javascript,jquery,Javascript,Jquery,我得到一个.json文件,并使用$.getJSON(url)将其分配给变量json当我与 console.log(json); console.log(typeof json); 为了确保我得到了这个包含大量无关数据的大对象: 完整代码示例: var json = 0; function fetchJson(url){ var json = $.getJSON(url); console.log(json); console.log(typeof json);
$.getJSON(url)将其分配给变量json
代码>当我与
console.log(json);
console.log(typeof json);
为了确保我得到了这个包含大量无关数据的大对象:
完整代码示例:
var json = 0;
function fetchJson(url){
var json = $.getJSON(url);
console.log(json);
console.log(typeof json);
for(var i in json['responseJSON']){
console.log(json['responseJSON'][i]);
}
}
fetchJson('test.json');
当我尝试在页面加载时遍历json['responseJSON']
时,除了初始的console.log()
,我什么也得不到,但是如果我在控制台中复制并粘贴它,我也会得到未定义的
。如果我使用
var list = "";
for(i in json['responseJSON']) {
list += json['responseJSON'][i];
return list;
}
console.log(list);
相反,它返回空字符串
我需要的是对象的类型
属性的值
getJSON不直接返回JSON。它是异步的。您向它传递一个函数,稍后返回数据时将调用该函数
$。getJSON
是异步的,这意味着它正在调用服务器,您无法预测响应何时返回。请查看jQuery的文档,其中说明了您必须如何提供回调函数,该函数将在请求完成并收到响应时运行:
函数fetchJson(url){
var json=$.getJSON(url,函数(json){
//这将在收到响应后运行。
log(json);
log(typeof json);
for(json['responseJSON']中的var i){
log(json['responseJSON'][i]);
}
});
}