使用javascript读取json外部链接的属性

时间:2014-09-26 15:47:44

标签: javascript jquery json google-maps-api-3 google-geocoder

您好我想从经度和谷歌地图api做反向geocodoing我应该将LonLat添加到链接以获取JSON结构这是JSON文件的链接http://maps.googleapis.com/maps/api/geocode/json?latlng=34.0235202,-6.8317697&sensor=true  从这个链接我想读取属性

  

的formatted_address

这是我如何获取JSON文件

  。

$的getJSON(' http://maps.googleapis.com/maps/api/geocode/json?latlng=&#39 + loca.toString()+'&安培;传感器=真&#39 ;,   function(data){           警报(data.results.formatted_address [0]);        }); }

但是它显示了这个错误未捕获的TypeError:无法读取属性' 0'未定义的

感谢您帮助我

2 个答案:

答案 0 :(得分:0)

来自api的回应看起来像这样:

{
  results: [{
    ...
    formatted_address: "39 Tirle Bank Way, Tewkesbury, Gloucestershire GL20 8ES, UK"
    ...
  },
  ...
  ],
  status: "OK"
}

当它实际上是一个字符串时,您尝试像formatted_address一样尝试访问[0]数组。它的results是一个数组。如果您只关心第一个结果,这应该对您有用:

$.getJSON('http://maps.googleapis.com/maps/api/geocode/json?latlng='+loca.toString()+'&sensor=true', function(data) { 
  if (data.status === 'OK') {
     alert(data.results[0].formatted_address); 
  }
  else {
    alert('Error! ' + data.status)
  }
}); 

答案 1 :(得分:0)

$.getJSON('http://maps.googleapis.com/maps/api/geocode/json?latlng=34.0235202,-6.8317697&sensor=true', 
function(data) {  alert(data.results[0].formatted_address); });