从API调用JSON元素并将结果作为字符串返回

我试图从API调用一个特定的元素(国家),我希望它以字符串forms返回,我将在下面详细说明

用户的输入:
纽约,纽约,美国

使用的API:
http://maps.google.com/maps/api/js?sensor=true&libraries=places

期望的结果:
美国/美国/美国

JSON不确定它叫什么:
https://maps.googleapis.com/maps/api/geocode/json?address=New%20York,%20NY,%20United%20States&sensor=true

我对如何做到有点失落,但这是我尝试的:

  Project 9    $(document).ready(function() { $("#btn1 ").click(function() { var address=encodeURI($('#userInput').val()); var url='https://maps.googleapis.com/maps/api/geocode/json?address='+address+'&sensor=true'; $.getJSON(url, function(data){ var shortname=data.results[0].address_components[3].short_name; var longname=data.results[0].address_components[3].long_name; alert(shortname+' '+longname); }); }); });       

我更新了这个问题,我很欣赏你的所有答案,但是我注意到在一些输入中,它不会返回国家但是返回address_components的索引3中的对象我们如何才能限制它只返回国家? 谢谢

它可以像这样工作吗?

  var shortname=data.results[0].address_components[country].short_name; var longname=data.results[0].address_components[country].long_name; alert(shortname+' '+longname); 

将返回json的url传递给getJSON函数。 参数数据将保存您从服务器获得的响应json。

您可以看到它包含一个名为“results”的字段,该字段是一个数组。 所以拿data.results [0]。 在其中,formatted_address字段包含您的值。

 var url = "https://maps.googleapis.com/maps/api/geocode/json?address=New%20York,%20NY,%20United%20States&sensor=true" $.getJSON(url, function(data) { alert(data.results[0].formatted_address) }); 
   Project 9        

干杯。

首先,阅读这篇文章。

getJSON签名如下:

 jQuery.getJSON( url [, data ], callback); 

并且回调函数签名如下:

 callback( data, textStatus, jqXHR ); 
  • data是所需的json对象
  • textStatus是一个用于检查ajax请求状态的字符串
  • jqXHR是实际的ajax请求对象

因此,如果要将数据作为查询字符串发送,例如地址作为参数,则可以将其发送为:

 var url = "https://maps.googleapis.com/maps/api/geocode/json" var data = { address: "New York, NY, United States", sensor: true }; jQuery.getJSON(url, data, function(data, status, xhr){ console.log(data.results); for(var i=0;i 

更改您的代码如下

 $(document).ready(function() { $("#btn1 ").click(function(event) { var address=encodeURI($('#userInput').val()); var url='https://maps.googleapis.com/maps/api/geocode/json?address='+address+'&sensor=true'; $.getJSON(url, function(data){ var shortname=data.results[0].address_components[2].short_name var longname=data.results[0].address_components[2].long_name alert(shortname+' '+longname); }); }); }); 
   Project 9