使用jQuery从数据库循环访问JSON

时间:2012-05-05 19:26:04

标签: php javascript jquery ajax json

我使用

对我的数据库进行了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从数据库中获取数据,它不起作用。

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

2 个答案:

答案 0 :(得分:1)

我通常这样做:

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

答案 1 :(得分:1)

“我的JSON就像后者,即[{”地址“:”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);
});

你应该好。