jQuery.getJSON 总是返回空对象

jQuery.getJSON always returns empty object

本文关键字:对象 返回 getJSON jQuery      更新时间:2023-09-26

我一直在寻找一种包含 JSON 文件中对象的方法,我找到了几页总结如何使用 $.getJSON(),甚至这里有一些答案,但没有一个有效。有些人建议我这样做:

var json;
$.getJSON("dir/1.json", function(response){
    json = response;
});

有些人这样建议:

var json = $.getJSON("dir/1.json");

这些都不起作用。当我尝试调用 json 的属性时,例如 json.title ,它只是给我一个错误,说变量未定义。似乎没有其他人遇到这个问题,那么我做错了什么?

尝试使用这个:

var json = $.getJSON( "dir/1.json" )
    .done(function( response ) {
        json = response;
        console.log( "json variable ready" );
    })
    .fail(function() {
        console.log( "error" );
    });

更新

$.getJSON() 返回的响应对象实现了 promise 接口,为其提供了 promise 的所有属性、方法和行为。因此,在返回响应或触发 done 函数之前,json 还没有准备好。

响应被延迟。在读取变量时,响应可能尚未响应。尝试在函数回调中访问变量,在json = response;之后立即访问