[英]Javascript fetch JSON array
我正在尝试通过ajax获取json-array。 我的test.php返回:
[{"name":"James","age":24},{"name":"Peter","age":30}]
我的Javascript如下所示:
var persons=new Array();
$.getJSON("../../api/test.php", function(data){
$.each(data, function(index,value){
persons.push(new Person(value.name,value.age));
});
});
问题是当我以后调用person.length时,出现无法读取未定义的属性“ length”。 当我将浏览器中的test.php输出复制/粘贴到本地变量中时,一切正常:
var content=[{"name":"James","age":24},{"name":"Peter","age":30}];
for(var i=0; i<content.length; i++)
persons.push(new Person(content[i].name,content[i].age));
我究竟做错了什么?
这可能是范围问题。 如果在函数内声明了“ var person”,则它在函数的范围内。 仔细检查声明它的位置以及您尝试访问它的位置。
有关更多信息,请参见: http : //coding.smashingmagazine.com/2009/08/01/what-you-need-to-know-about-javascript-scope/
编辑:我不相信异步调用$ .getJSON将是问题的原因,因为person.length将为0,并且person不会被不确定。
var persons = new Array();
print persons.length; // ==> 0
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.