使用 jQuery 循环访问数据库中的 JSON


Cycling through JSON from database with jQuery

我使用

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

输出包含以 getdata.php 编码的 JSON。我正在尝试循环浏览 JSON

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

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

我已经尝试了几种不同的方式来循环,但无法找出问题所在。

"我的JSON就像后者,即[{"地址":"约克郡圣尼古拉斯大道","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);
});

你应该很好。

我通常这样做:

for(var i in output) {
    console.log(output[i]);
}