从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