第一次开通博客,不知写些什么。目前正在做一个Android项目,需要调用天气接口来显示连续几天的天气信息状况,但由于网上一些资料有点杂乱或不全(或许是自己水平不够,别人写的简洁),总之刚开始时无从下手。慢慢懂了之后,觉得有必要写点东西。为避免以后遗忘,也方便过后复制粘贴,于是记下其中的具体步骤,给予提示。同时,希望能给和我一样正在学习Android的人提供一点小帮助。若有错误,敬请指正!


1. 注册和风天气账号

注册地址:http://console.heweather.com/register

注册账号后会得到一个个人认证key


2. API地址:

城市接口:https://api.heweather.com/x3/weather?cityid=城市ID&key=你的认证key

(例:https://api.heweather.com/x3/weather?cityid=CN101010100&key=c0e7636c8e2f415???)

3.返回的JSON数据

。。。。。。。。。。。。。。(省略)

4.编写JavaBean类

根据json数据创建相应的类,类名分别为Weather、Aqi、Basic、Dailyforecast、HourlyForcast、Now、

Suggestion。为简单易懂,类数据成员访问控制方式都设为public。(也可以设为private,不过要获取数据就靠写多个get函数)

①Weather.java

public classWeather {

           public Aqi aqi;public Basic basic;public List<DailyForecast> daily_forecast;public List<HourlyForecast> hourly_forecast;public Now now;public String status;public Suggestion suggestion;}
   ②Aqi.java
      public class Aqi {
          public City city;public class City{public String aqi;private String co;private String no2;private String o3;private String pm10;public String pm25;private String qlty;private String so2;}}
    ③Basic.java  
  public class Basic {public String city;private String cnty;public String id;public String lat;public String lon;public Update update;public class Update{public String loc;public String utc;}}
      ④DialyForecast.java  (由于dialy_forcast字段对应的是一个数组,故可以用List<DialyForecast>来表示)  
  public class DailyForecast {public Astro astro;public class Astro{public String sr;public String ss;}public Cond cond;public class Cond{public String code_d;public String code_n;public String txt_d;public String txt_n;}public String date;public String hum;public String pcpn;public String pop;public String pres;public Tmp tmp;public class Tmp{public String max;public String min;}public String vis;public Wind wind;public class Wind{public String deg;public String dir;public String sc;public String spd;}}
     ⑤HourlyForcast.java   
  public class HourlyForecast {public String date;public String hum;public String pop;public String pres;public String tmp;public Wind wind;public class Wind{public String deg;public String dir;public String sc;public String spd;}}
     ⑥Now.java 
  public class Now {public Cond cond;public class Cond{public String code;public String txt;}public String fl;public String hum;public String pcpn;public String pres;public String tmp;public String vis;public Wind wind;public class Wind{public String deg;public String dir;public String sc;public String spd;}}
    ⑦Suggestion.java
  public class Suggestion {public Air air;public class Air{public String brf;public String txt;}public Comf comf;public class Comf{    public String brf;public String txt;}public Cw cw;public class Cw{public String brf;public String txt;}public Drsg drsg;public class Drsg{public String brf;public String txt;}public Flu flu;public class Flu{public String brf;public String txt;}public Sport sport;public class Sport{public String brf;public String txt;}public Trav trav;public class Trav{public String brf;public String txt;}public Uv uv;public class Uv{public String brf;public String txt;}}

5.用Gson解析数据,得到一个Weather对象(其中参数response为返回的json数据)

   JSONObject jsonObject=new JSONObject(response);JSONArray jsonArray=jsonObject.getJSONArray("HeWeather data service 3.0");

    String weatherContent=jsonArray.getJSONObject(0).toString();
   Gson gson=new Gson();
        Weather weather=gson.fromJson(weatherContent,Weather.class);

6.简单获取数据

城市名:      weather.basic.city
        更新时间:  weather.basic.update.loc

天气:          weather.now.cond.txt
       今天温度:  weather.now.tmp
       最低温度:  weather.daily_forecast[0].tmp.min
       最高温度:  weather.daily_forecast[0].tmp.min

舒适度:      weather.suggestion.comf.txt;
       洗车指数:  weather.suggestion.cw.txt;
       运动建议:  weather.suggestion.sport.txt;

就写到这里了,调用天气接口其实很简单,按照固定的格式就可以调用并解析,多用几遍就可以记住了,加油!(凡星逝水2017)

Android调用天气接口(和风天气)相关推荐

  1. Android使用高德与和风天气实现定位实况数据显示 简易新闻(十)

    Android使用高德与和风天气实现定位实况数据显示 简易新闻(十) 关于 效果图 第一步,添加和风引用 第二步,修改AndroidManifest.xml 第三步,修改activity_main.x ...

  2. Android使用ButterKnife与和风天气sdk

    Android使用ButterKnife与和风天气sdk获取实况天气数据(二) 关于 效果 ButterKnife引用 第一步,修改activity_main.xml 修改MainActicity.j ...

  3. 请求天气 API 和风天气 API 免费

    请求天气 API 和风天气 API 免费 和风天气 https://www.qweather.com/ 是苹果天气的来源之一 它提供了免费的一些可用接口 API API 文档: https://dev ...

  4. 地区天气(和风天气)

    通过和风天气接口获取天气 和风天气开发服务 ~ 强大.丰富的天气数据服务 这个是花钱的,但是有免费次数 先登录申请key,还需申请腾讯的key(因为我是通过ip获取城市码) 注册在index中 < ...

  5. Android使用和风天气接口获取天气数据在APP中展示天气

    公司APP项目需要能能够显示当前天气,网上找了很多天气数据接口,总结下来要么收费,要么用起来不友好,最后还是用了郭霖推荐的和风天气接口 这里记录一下自己的使用过程 首先注册和风天气个人开发者,认证时间 ...

  6. android调用web接口,Android调用webservice 接口

    以查询手机号码归属地的Web service为例,它的wsdl为 1 在Android项目中导入??Ksoap2-android jar第三方jar包?? 2 Activity代码 public cl ...

  7. android调用webservice传参数,android调用webservice接口获取信息

    我的有一篇博客上讲了如何基于CXF搭建webservice,service层的接口会被部署到tomcat上,这一篇我就讲一下如何在安卓中调用这些接口传递参数. 1.在lib中放入ksoap2的jar包 ...

  8. android调用java接口_java/Android 接口调用的几种写法

    虽然Handler用的地方比较普遍,但是接口也有他的独特之处,比较直观,然后降低了耦合性 如有一接口,需要将数据传给使用的activity中,接口如下 public interfacePushValu ...

  9. Android调用微博接口

    1.没有密钥的朋友 请在这里注册一个移动应用,http://open.weibo.com/ .注册成功后在应用信息->基本信息中即可获得APP KEY 和 APP SECRET,没有这两个KEY ...

  10. android调用web接口,Android调用WebService系列之请求调用

    好久没写博客,快有3年了.当初想在CTO把自己的技术文章一直延续,可却没有坚持! 开发Android网络App,通讯方式决定了你App所需的能力! 最近正在用Web Service进行通讯,那么就让我 ...

最新文章

  1. 有关identity的小技巧
  2. $.AjaxFileUpload is not a function
  3. python画饼图程序_python使用matplotlib画饼状图
  4. webserver之定时器
  5. 交流磁路matlab,严格地说,交流磁路计算应该用磁滞回线。
  6. javascript 中的深复制 和 其实现方法
  7. Django MTV - 模型层 - (专题)知识要点与实战案例
  8. php-后台权限的思路
  9. 京东开始卖钻石了!?
  10. c++图的创建_如何在photoshop中创建汉堡菜单模板
  11. 光通信的再思考:5G流量爆发下的数据密度革命
  12. Android起始内存大,调整Android Studio分配内存大小
  13. (算法)海盗分赃_2
  14. 衡水二中2021清华北大高考成绩查询,此中学与衡水中学齐名,高考101人考上清华北大,很多人却不知道...
  15. STM32 FLASH的写入与读取
  16. LAMP系统构建论文
  17. 手机app跑得快游戏自动代打程序设计
  18. EularProject 101:Optimum polynomial
  19. 中国人最爱的算命项目,星座和塔罗牌输给了它
  20. 我在办公室鱼缸里 找到了窃密设备【反窃密知识分享】

热门文章

  1. hutool之SpringUtil使用
  2. 实现线程锁的三种常用方式
  3. 2022七夕适合送什么蓝牙耳机?好用又便宜蓝牙耳机推荐
  4. EasyUI combotree树组件无限循环,获取每个的最后节点
  5. 1611:细菌的繁殖与扩散
  6. 武汉大学计算机作业,武汉大学计算机学院研究生操作系统作业.docx
  7. canvas动画心得
  8. Linux 限制用户无法登录系统
  9. 强化学习6大前沿算法复现 | 乘风破浪,热情不减
  10. Python 的二维数组,你写对了吗?