繁体   English   中英

Javascript获取JSON数组

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM