http://maps.google.com/maps/api/geocode/json?address=xyz 我们得到一个json文件 我想知道如何在javascript中设置结果?如何在javascript中创建结果对象?
http://code.google.com/apis/maps/documentation/geocoding/index.html#JSONParsing 这并没有真正解释他们如何获得myJSONResult
答案 0 :(得分:1)
您可以使用eval
将JSON解析为JavaScript对象,但出于安全原因,不建议这样做。使用a JSON parser将JSON字符串转换为可以操作的JavaScript对象。
使用eval
:
myJSONResult = eval("{}");
使用上面链接的解析器:
myJSONResult = JSON.parse("{}");
答案 1 :(得分:1)
获取JSON的方式是使用AJAX检索。这可以使用hand coded JavaScript来完成,但使用jQuery要容易得多。这是一个简单的例子:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$.ajax({ url: "http://maps.google.com/maps/api/geocode/json",
type: "GET",
dataType: "json",
data: { address: "1600+Amphitheatre+Parkway,+Mountain+View,+CA", sensor: "false" },
success: function(data, textStatus, XMLHttpRequest) {
console.log(textStatus);
alert(data);
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
console.log(textStatus);
}});
});
</script>
但是这将 NOT 工作,因为same origin policy。解决方法是使用您选择的服务器端语言(Perl,PHP,ColdFusion,ASP)充当代理。这样url值将是“yourproxy.php”,“yourproxy.cfm”,“yourproxy.asp”或其他什么。该脚本只是接收它收到的请求,充当用户代理将请求发送给Google并检索响应(也就是上面代码中url值的URL),并将结果发送到您的脚本。 / p>
jQuery库为您处理JSON处理,或者您可以使用Bob提供的信息以及上面列出的手动AJAX。请注意,手动AJAX需要相同的代理解决方案才能从Google获取信息。
另请注意,您链接到的地理编码API并非适用于大量动态查询。他们引导您转到API V2 Client Geocoder,API V3 Client Geocoder和Maps API for Flash Client Geocoder。