1

我使用 AJAX 调用了我的数据库

$.post('getdata.php', {passLong: passLong, passLat: passLat},
      function(output){

输出保存在 getdata.php 中编码的 JSON。我正在尝试循环浏览 JSON

     $.each(output, function(){
        console.log(this.CarParkName);
      });

在控制台中,我只是得到“未定义”。jQuery 每个方法都应该循环遍历 JSON 并在地图上绘制标记,当我将 PHP 放在同一个文件中时,代码可以工作,但是由于使用 AJAX 从数据库中获取数据,所以它不起作用。

我用循环尝试了一些不同的东西,但无法找出问题所在。

4

2 回答 2

1

我通常这样做:

for(var i in output) {
    console.log(output[i]);
}
于 2012-05-05T19:28:53.547 回答
1

“我的 JSON 与后者类似,即 [{"Address":"St Nicholas Avenue York Yorkshire","CarParkName":"McArthur Glen Designer Outlet","CarParkRef":"26"}]"

根据评论讨论和您对其他答案的回复,我认为问题在于您处理的是字符串,而不是 javascript 对象。您只需要将字符串解析为对象。(我曾假设您已经在处理解析为 javascript 对象的数据)。

如果字符串看起来完全一样:

[{"Address":"St Nicholas Avenue York Yorkshire",
"CarParkName":"McArthur Glen Designer Outlet","CarParkRef":"26"}]

然后这样做:

// wrap as an object first, a plain array is not valid json 
var js = $.parseJSON('{"data":' + output + '}');

$.each(js.data, function() {
    console.log(this.CarParkName);
});

你应该很好。

于 2012-05-05T19:59:34.770 回答