2010-10-01 117 views
0

我做一个Ajax调用:无法访问JSON对象我希望

$.ajax({ 
     url: '/foo/getData', 
     dataType: 'json', 
     async: false, 
     success: function(data){ 
      lat = data.project_x; 
      lng = data.project_y; 
      zoomin = parseInt(data.mapzoom); 
      console.log(data); 
     } 
    }); 

,并返回:

[{"id":"3","project_x":"42.456","project_y":"-70.123","zoom":"7"},{"id":"3","project_x":"41.123","project_y":"-71.456","zoom":"7"}] 

console.log(data)给我:

Object 
id: "3" 
project_x: "42.456" 
project_y: "-70.123" 

然而,当我尝试将这些值分配给我获得undefined。示例: console.log(data.project_x);

回报undefined时,我希望它返回42.456

我在做什么错在这里?

+1

是不是因为数据是JSON阵列?可能是console.log(data [0] .project_x); – house9 2010-10-01 23:16:18

回答

2

因为你的结果是,你需要访问你想要的位置的阵列,例如:

lat = data[0].project_x; 

,或者根据您的需求,通过数组循环并使用每个值......这是来自不明你的代码完全符合你的要求,但重要的部分是属性不在返回的对象上......它们在返回的数组中的对象上。

环路可能看起来像:

$.each(data, function() { 
    alert(this.project_x); //access properties off this 
});