我使用
$.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]);
}