我一直在寻找一种方法来包含JSON文件中的对象,我发现有几个页面总结了如何使用$ .getJSON(),甚至还有一些答案,但没有工作过。有人建议我这样做:
var json;
$.getJSON("dir/1.json", function(response){
json = response;
});
有些人这样建议:
var json = $.getJSON("dir/1.json");
这些都不奏效。当我尝试调用json
的属性时,例如json.title
,它只是给我一个错误,说明变量是未定义的。似乎没有其他人遇到这个问题,所以我做错了什么?
答案 0 :(得分:2)
尝试使用:
var json = $.getJSON( "dir/1.json" )
.done(function( response ) {
json = response;
console.log( "json variable ready" );
})
.fail(function() {
console.log( "error" );
});
<强>更新强>
$ .getJSON()返回的响应对象实现了promise接口,为其提供了promise的所有属性,方法和行为。因此,在返回响应或触发完成函数之前,json尚未就绪。
答案 1 :(得分:1)
延迟回复。在您阅读变量时,响应可能还没有响应。尝试在json = response;