如何将通过getJSON()
获取的数据分配给数组以备后用?
下面的getJSON url检索格式正确的JSON,其中有10个主要元素,每个元素都有id、username、haiku(和其他)子元素。如果您正在运行它,请将JSON元素保存到本地文件中,这样就不会出现相同的域错误(即,如果您从不同的域获取,则不会加载JSON)。
发生的情况是,在getJSON
回调内部,警报将获取一个值,但在外部,该值未定义。
$(document).ready(function(){
var haikus=[];
alert("开始循环");
$.getJSON('http://example.com/json.php',function(data){
var i=0;
for(i=0;i<data.length;i++){
haikus[i]=[data[i].id,String(data[i].username),String(data[i].haiku)];
}
alert(haikus[0][1]);
});
})
- 是的,这与之前的帖子有关。但是,我最初把我的问题简化了,所以最初提供的解决方案并没有解决它。jQuery - 将getJSON数据转换为数组
$.getJSON
回调函数外部使用haikus
变量,它将无法工作。正在使用haikus
的代码不会等待*响应返回。它将尝试立即使用haikus
。因为它不等待响应,所以haikus
还没有被分配来自响应的data
。 - user113716