Javascript 如何使用jQuery getJSON()访问从外部源接收的JSON元素?
我正在尝试使用以下方法从JavaScript读取JSON信息():Javascript 如何使用jQuery getJSON()访问从外部源接收的JSON元素?,javascript,jquery,json,parsing,Javascript,Jquery,Json,Parsing,我正在尝试使用以下方法从JavaScript读取JSON信息(): $.getJSON("https://maps.googleapis.com/maps/api/geocode/json?address="+city+"+"+steet+"&sensor=false", function(json) { if (json.status == 'ZERO_RESULTS'){ alert('Wrong input'); } else{ // Here I would like t
$.getJSON("https://maps.googleapis.com/maps/api/geocode/json?address="+city+"+"+steet+"&sensor=false", function(json) {
if (json.status == 'ZERO_RESULTS'){
alert('Wrong input');
}
else{
// Here I would like to read json.results.geometry.location.lat
}
});
但它不起作用。如果我尝试读取json.results,我会得到[object]。因为打印json给了我相同的结果,我想我可以继续使用句点,但它不起作用
在那之后,我尝试迭代json.results,然后将对象解析为数组,但都不起作用 结果是一个对象数组。所以你应该试试:
json.results[0].geometry.location.lat
结果是一个对象数组。所以你应该试试:
json.results[0].geometry.location.lat
结果是一个数组,您应该在其中循环:
for (var i = 0; i < json.results.length; i++) {
console.log(json.results[i].geometry.location.lat);
}
for(var i=0;i
结果是一个数组,您应该在其中循环:
for (var i = 0; i < json.results.length; i++) {
console.log(json.results[i].geometry.location.lat);
}
for(var i=0;i
json.results
是一个数组,您必须访问其中的元素
您现有的代码正在尝试访问对象的属性位置
,几何体
但是由于json.results
是一个数组,json.results.geometry
是未定义的
,因此不能有属性
如果您想在控制台中检查错误,您应该得到如下结果
未捕获类型错误:无法读取未定义的属性“位置”
您需要的是访问结果
数组的元素,因为其中的每个元素代表一个gMaps搜索结果,该搜索结果保存您想要访问的信息
e、 g.json.results[0]
将为您提供表示第一个搜索结果的对象,
json.results[1]
会给你第二个,依此类推
所以如果你把它改成
$.getJSON("https://maps.googleapis.com/maps/api/geocode/json?address=Berlin+Alexanderplatz&sensor=false", function(json) {
if (json.status == 'ZERO_RESULTS'){
alert('Wrong input');
}
else{
console.log(json.results[0].geometry.location.lat) // 52.5218316
}
});
您可以获得第一个结果的纬度,正如您所希望的那样
这是一个.
json.results
是一个数组,您必须访问其中的元素
您现有的代码正在尝试访问对象的属性位置
,几何体
但是由于json.results
是一个数组,json.results.geometry
是未定义的
,因此不能有属性
如果您想在控制台中检查错误,您应该得到如下结果
未捕获类型错误:无法读取未定义的属性“位置”
您需要的是访问结果
数组的元素,因为其中的每个元素代表一个gMaps搜索结果,该搜索结果保存您想要访问的信息
e、 g.json.results[0]
将为您提供表示第一个搜索结果的对象,
json.results[1]
会给你第二个,依此类推
所以如果你把它改成
$.getJSON("https://maps.googleapis.com/maps/api/geocode/json?address=Berlin+Alexanderplatz&sensor=false", function(json) {
if (json.status == 'ZERO_RESULTS'){
alert('Wrong input');
}
else{
console.log(json.results[0].geometry.location.lat) // 52.5218316
}
});
您可以获得第一个结果的纬度,正如您所希望的那样
这里有一个问题。当你说“如果我尝试阅读json.results”,你实际上做了什么。我猜你是想
alert()
it?如果是这样的话,不要alert()
不适合调试,请改用console.log()
。我不确定是否理解您的问题,但这是否有帮助?当你说“如果我尝试阅读json.results”时,你实际上做了什么。我猜你是想alert()
it?如果是这样的话,不要alert()
不适合调试,请改用console.log()
。我不确定是否理解您的问题,但这是否有帮助?