我正在使用json
获取.json文件并将其分配给变量$.getJSON(url);
,当我使用
console.log(json);
console.log(typeof json);
只是为了确保我得到这个包含大量不相关数据的大对象:console.log() result
完整代码示例:
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()
之外我什么都得不到,但是如果我将其复制并粘贴到控制台中我也得到undefined
。如果我使用
var list = "";
for(i in json['responseJSON']) {
list += json['responseJSON'][i];
return list;
}
console.log(list);
相反,它返回空字符串。
我需要的是type
pic objects
属性的值。
答案 0 :(得分:1)
getJSON没有直接返回JSON。它是异步的。您传递一个函数,该函数将在以后返回数据时调用。
答案 1 :(得分:1)
$.getJSON
是异步的,这意味着它正在调用服务器,而您无法预测该响应何时会返回。请查看jQuery的文档,其中显示了如何提供一个回调函数,该函数将在请求完成并收到响应时运行:
https://docs.oracle.com/javase/9/docs/api/java/util/concurrent/locks/StampedLock.html
function fetchJson(url){
var json = $.getJSON(url, function(json) {
// this will run after the response is received.
console.log(json);
console.log(typeof json);
for(var i in json['responseJSON']){
console.log(json['responseJSON'][i]);
}
});
}