Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用jQuery getJSON()访问从外部源接收的JSON元素?_Javascript_Jquery_Json_Parsing - Fatal编程技术网

Javascript 如何使用jQuery getJSON()访问从外部源接收的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

我正在尝试使用以下方法从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 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()
。我不确定是否理解您的问题,但这是否有帮助?