2016-03-05 39 views
0

我试图通过关键字lat从JSON文件访问特定值,因为我循环遍历每条记录。但是,我印刷它们时得到的结果是undefined

JSON

[{"pid":4317129482,"lat":"51.5078","lon":"-0.10467","coords":{"x":-0.10467,"y":51.5078},"points":{"x":-0.10467,"y":51.5078}}, 
{"pid":4356791546,"lat":"51.522","lon":"-0.101773","coords":{"x":-0.101773,"y":51.522},"points":{"x":-0.101773,"y":51.522}}, 

的JSON存储在data

代码试图

$.each(data, function(key, value){ 
          if (key == "lat") { 
           console.log(value) 
          } 

OR

$.each(data, function(item){  
          console.log(item.lat) 
} 

回答

0

试试这个

$.each(data, function(key, value){ 
    console.log(value.lat); 
}); 
1

如果你已经张贴了JSON是正确的,它的对象的数组。因此,$.each(data,function(key,val){})将返回索引,并且对象即密钥将是0,1,2并且为该对象赋值。

要访问

“LAT”: “51.522”

你要做的

$.each(data,function(key,val){ 
    //val here is your object. For each object in the array you have to loop again 
    $.each(val,function(k,v){ 
     //now since val is an object looping through it will return your key-value pairs 
     if(k == 'lat'){ 
     //Do something 
     } 
    }) 
}) 
0

如果它有助于改变参数名更加的指示你在循环着什么$.each

对于数组somethi吴象:

$.each(arr, function(index, arrayElement){ 

}) 

对于对象

$.each(obj, function(objKey, propertyValue){ 

}); 

当不确定什么是循环使用console.log([index, arrayElement])里面,所以你可以在浏览器的开发者工具控制台检查它