Javascript 如何从json检索这些值?

Javascript 如何从json检索这些值?,javascript,jquery,ajax,json,google-maps,Javascript,Jquery,Ajax,Json,Google Maps,我试图通过jqueryajax从googlemaps检索位置的纬度和经度 以下是我的JavaScript代码: var lat; var lng; function setCordinates(address) { var ret = false; data = "address="+address; $.ajax({ type: "GET", url: "https

我试图通过jqueryajax从googlemaps检索位置的纬度和经度

以下是我的JavaScript代码:

    var lat;
    var lng;

    function setCordinates(address)
    {
        var ret = false;
        data = "address="+address;
        $.ajax({
            type: "GET",
            url: "https://maps.googleapis.com/maps/api/geocode/json",
            data: data,
            cache: false,
            dataType: 'json',
            success: function(json_data)
            {
                lat = json_data.results.geometry.location.lat;
                lng = json_data.results.geometry.location.lng;
                ret = true;
            },
            error: function()
            { 
                alert("There was an error!");
            }
        });
        return ret;
    }
当我从控制台预览响应主体时,我得到了返回的json数据:

{
    "results" : [ 
        { 
            "address_components" : [ 
                { 
                    "long_name" : "Uyo", 
                    "short_name" : "Uyo", 
                    "types" : [ "locality", "political" ] 
                }, 
                { 
                    "long_name" : "Akwa Ibom", 
                    "short_name" : "Akwa Ibom", 
                    "types" : [ "administrative_area_level_1", "political" ] 
                }, 
                { 
                    "long_name" : "Nigeria", 
                    "short_name" : "NG", 
                    "types" : [ "country", "political" ] 
                } 
            ], 
            "formatted_address" : "Uyo, Nigeria", 
            "geometry" : 
            { 
                "bounds" : 
                { 
                    "northeast" : 
                    { 
                        "lat" : 5.0906023, 
                        "lng" : 8.0030251 
                    }, 
                    "southwest" : 
                    { 
                        "lat" : 4.9681658, 
                        "lng" : 7.8638077 
                    } 
                }, 
                "location" : 
                { 
                    "lat" : 5.0377396, 
                    "lng" : 7.9127945 
                }, 
                "location_type" : "APPROXIMATE", 
                "viewport" : 
                { 
                    "northeast" : 
                    { 
                        "lat" : 5.0906023, 
                        "lng" : 8.0030251 
                    }, 
                    "southwest" : 
                    { 
                        "lat" : 4.9681658, 
                        "lng" : 7.8638077 
                    } 
                } 
            }, 
            "partial_match" : true, 
            "types" : [ "locality", "political" ] 
        } 
    ], 
    "status" : "OK" 
} 
我试图从位置获取lat和lng的值,但我得到一个错误:

TypeError: json_data.results.geometry is undefined
我看了、和,但我真的不知道该怎么办。它们似乎都不相关。请帮助我,我还是json新手。谢谢。

这个怎么样:

lat = json_data.results[0].geometry.location.lat;
lng = json_data.results[0].geometry.location.lng;
那么这个呢:

lat = json_data.results[0].geometry.location.lat;
lng = json_data.results[0].geometry.location.lng;
您的结果是数组

因此,您必须通过以下方式获得lat/lng的值:

json_data.results[0].geometry.location.lat 

您的结果是数组

因此,您必须通过以下方式获得lat/lng的值:

json_data.results[0].geometry.location.lat 


使用json.parse会将其转换为您可以使用的对象

尝试:


使用json.parse会将其转换为您可以使用的对象

尝试:

Results是一个数组,您可能还希望包含一些逻辑来处理返回多个结果的情况/已编辑删除的代码段


Results是一个数组,您可能还希望包含一些逻辑来处理返回多个结果的情况/“已编辑删除的代码段”结果是JSON响应中的一个数组,因此您必须首先访问该数组的一个元素:

lat = json_data.results[0].geometry.location.lat;

results是JSON响应中的一个数组,因此您必须首先访问数组的一个元素:

lat = json_data.results[0].geometry.location.lat;

json_data.results
是一个数组,因此需要包含元素的索引。它只有一个元素,因此
json_data.results[0]。几何体
json_data.results
是一个数组,因此需要包含元素的索引。它只有一个元素,因此
json_data.results[0]。几何体