0

私はGoogle 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ệt Nam"、および "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;

しかし、それは機能していません

4

1 に答える 1

1

javascriptについてもう少し読むべきだと思います。jsonを取得するにはhttpgetリクエストを使用する必要があります。これを行うには、同期リクエストまたはajaxリクエストを使用する2つの方法があります。
これを試して :

//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);
    }
});
于 2012-11-25T16:08:29.717 に答える