不得不提出这个问题令人尴尬,但我承认我是一个没有经验的Javascript开发人员,而我无法理解这一点。希望这对其他人来说简单易行,我想提前感谢所有人,以便本网站不断为我提供帮助。
几天前,我问过this question,我不再收到错误了。但我试图实际访问存储在变量中的数据。我的JSON看起来像这样:
[
{"id":"1","name":"Bob","haircolor":"Brown"},
{"id":"2","name":"Carol","haircolor":"Red"}
]
它会变成这样的变量:
var people=[];
$.getJSON("php/getpeople.php", function(data){ //getpeople.php generates the JSON
people.push(data);
});
感谢将人初始化为数组,我不再收到任何错误消息。但我也无法访问人们的内容。 people.length
返回0,people[0]
和people[1]
未定义。
它就在那里,我知道它就在那里,但我有一个时间搞清楚的地方。
答案 0 :(得分:2)
people
只有在 ajax事件发生后才会获得值。
将数据放入people
数组后调用一些回调函数。
答案 1 :(得分:1)
试试这个:http://jsfiddle.net/hUq7k/
$.getJSON("php/getpeople.php", function(data){ //getpeople.php generates the JSON
$.each(data, function(i, people){
console.log(people.id); //<------this should output "1, 2"
});
});
确保您获得response data
。
答案 2 :(得分:0)
如果服务器实际上返回了预期的JSON,则以下 应该:
$.getJSON("php/getpeople.php", function(data){ //getpeople.php generates the JSON
var people = data;
alert("people.length: " + people.length);
if (people.length > 0) {
alert("people[0].id: " + people[0].id);
}
});
以下不工作,即people
将为undefined
,因为$ .getJSON是一个异步方法,此代码正在尝试访问{{1}在AJAX操作完成之前。
people