[JS,JSON] Open Weather Map API:JSON调用并解析为JS var

时间:2014-04-04 22:02:48

标签: javascript json api

我想用javascript(也许是jQuery?)调用OpenWeatherMap API到这个URL

http://api.openweathermap.org/data/2.5/weather?lat=(here comes the lat for a variable)&lon=(lon from variable)

然后解析API输出(我认为它是JSON)来获取

 "main":"Clear" and "temp":271.997

并设置" main"和" temp"变量到js变量,并将它们发送到innerHTML。

有人可以制作一个脚本示例吗?

感谢您的帮助,对不起英语不好。

1 个答案:

答案 0 :(得分:1)

因为您正在解析另一台服务器(非本地)上的json文件,所以您需要使用JSONP。基本上你使用ajax传递一个回调参数来打开天气图。这使您可以使用脚本中的数据。

以下jquery将使用坐标变量生成json文件的链接,使用jsonp解析数据并在id为“weather”的web元素中显示信息。

您很可能希望添加错误处理并为访问者创建数据的本地缓存,然后加载缓存(如果它是最近的)。我希望这会帮助你。

var lat=00.00 //latitude variable
var long=00.00 //longitude variable
var data_url="http://api.openweathermap.org/data/2.5/weather?lat="+lat+"&lon="+long+"";
//function to pull information out of the json file and stick it into an HTML element
getWeather(function (data) {
    var weather_html = data.weather[0].description + "nbsp;" + data.main.temp;
    document.getElementById('weather').innerHTML = weather_html;
});
// function to use jsonp to get weather information
function getWeather(callback) {
    $.ajax({
        dataType: "jsonp",
        url: data_url,
        success: callback
    });
};