gpt4 book ai didi

javascript - JSON 结果从 address_components 获取国家

转载 作者:行者123 更新时间:2023-11-30 12:48:41 25 4
gpt4 key购买 nike

嗨,JSON 新手,我想知道我是否可以从这个 API 的 JSON 结果中调用“国家/地区”:http://maps.google.com/maps/api/js?sensor=true&libraries=places

我尝试使用一个循环来获取 JSON 结果 address_components 的最后一部分,但我意识到“国家/地区”的位置因用户的输入而异

详细说明:
场景 1:用户输入:
736 Lockhart Court,澳大利亚昆士兰州哈里斯敦 4350

结果:
澳大利亚//这是正确的

场景 2:用户输入:
美国弗吉尼亚州汉普顿兰利空军基地

结果:
弗吉尼亚//不正确

我当前的代码获取数组 address_components 的最后一个索引,我想知道我是否可以做这样的事情 *data.results[0].address_components[country].long_name;*,但我只是不知道正确的方法。

代码:

<html>  
<head></head>
<title></title>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true&libraries=places"></script>
<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
<script type="text/javascript">
$(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){
for(var row=0; row<data.results.length;row++){
document.getElementById('res').value = (data.results[row].address_components[data.results[row].address_components.length-2].long_name);
}
});
});
});
</script>
<body>

<input type="text" id="res">
<input type="text" name="userInput" id="userInput" />

<input type="button" id="btn1" value="Load Data" />
</body>
</html>

如何在不依赖 address_components 索引的情况下获取特定(国家/地区、街道号码等)元素?

最佳答案

在您的情况下,您必须手动迭代数组并检查 types 数组是否包含 'country'。您可以使用 array.indexOf为此。

for(var row=0; row<data.results.length;row++){
var item = data.results[row];
for( var i = 0; i< item.address_components.length; i++) {
var component = item.address_components[i];
if( component.types.indexOf('country') != -1) {
document.getElementById('res').value = component.long_name;
}
}
}

关于javascript - JSON 结果从 address_components 获取国家,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21727931/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com