从 URL 获取 JSON 的未定义元素



我正在使用谷歌地图API通过LAT和LON获取高程值,但我总是得到未定义的对象。

我的脚本是这样的:

<script type="application/javascript">
function findAltitude() {
var lat  = document.getElementById('lat').value;
var lon  = document.getElementById('lon').value;
var url = "https://maps.googleapis.com/maps/api/elevation/json?locations=11,11&key=<API_KEY>";
var json, data;
$.ajax({
dataType: "json",
url: url,
data: data,
success: function(data) {
alert(data.results.elevation);
}
});
}
</script>

我的 JSON 是这样的:

{"results" : [
{
"elevation" : 402.0888977050781,
"location" : {
"lat" : 11,
"lng" : 11
},
"resolution" : 152.7032318115234
}],"status" : "OK"}

发布的JSON中的results包含一个数组。 因此,您可能希望记录例如第一个结果提升,如下所示:alert(data.results[0].elevation);

结果是一个数组,因此您的问题。

更改此行:

data.results.elevation

跟:

data.results[0].elevation

你可以做

$.ajax({
dataType: "json",
url: url,
data: data,
success: function(data) {
alert(data.results[0].elevation);
}
});
}

最新更新