Javascript 如何从json检索这些值?
我试图通过jqueryajax从googlemaps检索位置的纬度和经度 以下是我的JavaScript代码: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
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]。几何体