我有谷歌API,它返回一个JSON文件
http://maps.googleapis.com/maps/api/geocode/json?latlng=10.75,106.667&sensor=false
我想得到“long_name”:“HồChíMinh”,“long_name”:“ViệtNam”和“short_name”:“VN”
我不懂JSON,我喜欢这个
var API = 'http://maps.googleapis.com/maps/api/geocode/json?latlng=10.75,106.667&sensor=false';
var obj = eval("(" + API + ")");
var obj2 = eval("(" + obj + ")");
document.getElementById("City").innerHTML = obj.results[0].obj2.address_components[0].long_name;
但它不起作用
答案 0 :(得分:1)
我认为你应该阅读更多关于javascript的内容。您必须使用http get请求来获取json,有两种方法可以使用同步请求或ajax请求。 试试这个:
//the json url
var API = 'http://maps.googleapis.com/maps/api/geocode/json?atlng=10.75,106.667&sensor=false';
//this function add the long_name
function addLongName(data){
var long_name = data.results[0].address_components[5].long_name;
document.getElementById("City").appendChild(document.createTextNode(long_name));
}
使用同步请求
var xmlHttp = new XMLHttpRequest();
xmlHttp.open("GET", API, false);
try {
xmlHttp.send(null);
responseText = xmlHttp.responseText;
var data = JSON.parse(responseText);
addLongName(data);
} catch (ex) {
console.error(ex);
}
使用ajax请求
var ajax = $.ajax({
type : "GET",
url : API,
dataType: 'jsonp',
success: function(data) {
addLongName(data);
}
});