免费天气API,全国天气 JSON API接口,可以获取五天的天气预报

原文链接:http://www.sojson.com/blog/23...
稳定高效的天气API接口是很少有的,本站前一段时间开发了一个万年历,需要带天气预报,花了几天功夫,集成和容错处理好对外开放的天气接口。天气接口支持返回JSON和XML结果。
并且可以获取到昨天,以及今天和未来4 天的天气预报。那么下面直接介绍天气预报的接口吧。

天气API详情介绍 在 API 中心:http://www.sojson.com/api/wea... ,下面只介绍下调用方式,然后 用 Java 语言调用演示一下。

天气预报 API 接口 JSON返回

public static void json() throws Exception{
    //参数url化
    String city = java.net.URLEncoder.encode("北京", "utf-8");
    
    //拼地址
    String apiUrl = String.format("http://www.sojson.com/open/api/weather/json.shtml?city=%s",city);
    //开始请求
    URL url= new URL(apiUrl);
    URLConnection open = url.openConnection();
    InputStream input = open.getInputStream();
    //这里转换为String,带上包名,怕你们引错包
    String result = org.apache.commons.io.IOUtils.toString(input,"utf-8");
    //输出
    System.out.println(result);
}

天气预报 JSON 返回值:

{
    "message": "Success !",
    "status": 200,
    "city": "北京",
    "count": 1,
    "data": {
        "shidu": "71%",
        "pm25": 51,
        "pm10": 66,
        "quality": "良",
        "wendu": "28",
        "ganmao": "极少数敏感人群应减少户外活动",
        "yesterday": {
            "date": "09日星期三",
            "sunrise": "05:19",
            "high": "高温 30.0℃",
            "low": "低温 23.0℃",
            "sunset": "19:20",
            "aqi": 79,
            "fx": "北风",
            "fl": "<3级",
            "type": "雷阵雨",
            "notice": "雷雨闪电时,应切断电器电源,以免损坏"
        },
        "forecast": [
            {
                "date": "10日星期四",
                "sunrise": "05:20",
                "high": "高温 32.0℃",
                "low": "低温 24.0℃",
                "sunset": "19:19",
                "aqi": 60,
                "fx": "南风",
                "fl": "<3级",
                "type": "多云",
                "notice": "绵绵的云朵,形状千变万化"
            },
            {
                "date": "11日星期五",
                "sunrise": "05:21",
                "high": "高温 33.0℃",
                "low": "低温 24.0℃",
                "sunset": "19:17",
                "aqi": 97,
                "fx": "东南风",
                "fl": "<3级",
                "type": "阴",
                "notice": "阴天是彩虹的前期之景"
            },
            {
                "date": "12日星期六",
                "sunrise": "05:22",
                "high": "高温 30.0℃",
                "low": "低温 23.0℃",
                "sunset": "19:16",
                "aqi": 65,
                "fx": "南风",
                "fl": "<3级",
                "type": "雷阵雨",
                "notice": "雷雨较大时要远离树木,选择建筑物躲雨"
            },
            {
                "date": "13日星期日",
                "sunrise": "05:23",
                "high": "高温 26.0℃",
                "low": "低温 22.0℃",
                "sunset": "19:15",
                "aqi": 52,
                "fx": "北风",
                "fl": "<3级",
                "type": "雷阵雨",
                "notice": "空旷场地不要使用有金属尖端的雨伞"
            },
            {
                "date": "14日星期一",
                "sunrise": "05:24",
                "high": "高温 30.0℃",
                "low": "低温 24.0℃",
                "sunset": "19:13",
                "aqi": 43,
                "fx": "北风",
                "fl": "<3级",
                "type": "阴",
                "notice": "阴天是彩虹的前期之景"
            }
        ]
    }
}

注意的一点就是,参数中文要转码。要url转码。 Java 如下:

//参数url化
    String city = java.net.URLEncoder.encode("北京", "utf-8");

免费天气API,全国天气 JSON API接口,可以获取五天的天气预报
还有一点就是,编码为UTF-8

本站使用的Demo,是在万年历功能使用,下面是截图。
万年历:http://www.sojson.com/time/wa...
如果需要元素图片,也就是对应天气的素材图片,请加QQ群(259217951),然后回复 “天气图片”,会有机器人回复您,给你图片的下载地址,以及图片的对应含义。 JSON 格式的。

相关推荐