通过Yahoo!获取JSON数据Placefinder

时间:2012-06-28 15:18:21

标签: javascript json api yahoo

我正在尝试从Placefinder API检索信息。我的代码从文本框中获取信息,并通过单击按钮将其发送到雅虎。

            function codeAddress(){
            var address = document.getElementById("address").value;
            var RequestUrl = "http://where.yahooapis.com/geocode?q="+address+"&flags=J&callback=ws_results&output=json";
            JSONObject = new XMLHttpRequest();
            JSONObject.open( "GET", RequestUrl, false );
            JSONObject.send( null );
            return JSONObject;
            document.getElementByID("jlatitude").innerHTML=JSONObject.latitude;
            alert(document.write("jlatitude"));
        }

Firebug告诉我数据已返回,但我无法在故障排除弹出窗口中显示我想要的内容。当我请求为马里兰州进行地理编码时,地址查找器会返回此信息。

{"ResultSet":{"version":"1.0","Error":0,"ErrorMessage":"No error","Locale":"us_US","Quality":10,"Found":2,"Results":[{"quality":49,"latitude":"39.466626","longitude":"-93.709069","offsetlat":"39.466626","offsetlon":"-93.709069","radius":700,"name":"","line1":"","line2":"Roads, MO","line3":"","line4":"United States","house":"","street":"","xstreet":"","unittype":"","unit":"","postal":"","neighborhood":"Roads","city":"Norborne","county":"Carroll County","state":"Missouri","country":"United States","countrycode":"US","statecode":"MO","countycode":"","uzip":"64668","hash":"","woeid":2482523,"woetype":7},{"quality":49,"latitude":"39.080130","longitude":"-82.537394","offsetlat":"39.080130","offsetlon":"-82.537394","radius":700,"name":"","line1":"","line2":"Roads, OH","line3":"","line4":"United States","house":"","street":"","xstreet":"","unittype":"","unit":"","postal":"","neighborhood":"Roads","city":"Wellston","county":"Jackson County","state":"Ohio","country":"United States","countrycode":"US","statecode":"OH","countycode":"","uzip":"45692","hash":"","woeid":2482522,"woetype":7}]}}

我的警告框未显示,但存储了数据。

由于

2 个答案:

答案 0 :(得分:0)

我认为你的JavaScript代码示例中有一个简单的问题 - 从YQL接收数据后,你有return JSONObject;,这意味着永远不会执行以下行。

要进行故障排除和确认,您可以在返回时写入控制台日志,例如:

function codeAddress(){
    var address = document.getElementById("address").value;
    var RequestUrl = "http://where.yahooapis.com/geocode?q="+address+"&flags=J&callback=ws_results&output=json";
    JSONObject = new XMLHttpRequest();
    JSONObject.open( "GET", RequestUrl, false );
    JSONObject.send( null );
    console.log( JSONObject.responseText );
}

答案 1 :(得分:0)

$.getJSON(RequestUrl,{},function(result){
  ...
});

这正确地从Yahoo!中检索JSON对象。 Placefinder