从JSON获取价值

时间:2013-04-18 08:08:20

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

我有一个像这样的JSON -

  ....
        "location" : {
           "lat" : 37.42140090,
           "lng" : -122.08537010
        },
  ....

我正在尝试访问lat和lng值。我该怎么办?

我的代码

     results[0].geometry.location.lat
  or results[0].geometry.location.lng

不起作用。但是当我使用结果[0] .geometry.location。

时,我得到了输出

我使用的JSON是 - http://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&sensor=true

更新 -

这就是我向API提出请求的方式

           geocoder.geocode( { 'address': search_addr}, function(results, status) {
            if (status == google.maps.GeocoderStatus.OK) {
                var t = results[0].geometry.location.lat;
            } else {
              alert('Geocode was not successful for the following reason: ' + status);
            }

谢谢

2 个答案:

答案 0 :(得分:5)

我用

尝试了你的代码
alert(json.results[0].geometry.location.lat);

它可以在这个小提琴中看到它的作用:

http://jsfiddle.net/SWTZQ/

答案 1 :(得分:3)

使用Google的JavaScript API时,您通常不会直接与解析的JSON进行交互,而是使用 wrapper Object进行交互。

具体而言,results[0].geometry.location将是google.maps.LatLng的一个实例。因此,latlng不是自己持有值,而是return值的方法:

var geoLoc = results[0].geometry.location;
var lat = geoLoc.lat();
var lng = geoLoc.lng();