Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法访问$.getJSON返回的对象的属性_Javascript_Jquery - Fatal编程技术网

Javascript 无法访问$.getJSON返回的对象的属性

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);

我得到一个.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]); } }); }