这篇文章是“树莓派查询天气,通过串口彩屏/7219点阵实时显示”的一部分,主要介绍使用Java查询雅虎天气并解析Json返回数据,这里只是将获得的实时天气、未来十天的天气等信息,解析并打印出来,为下一步做准备。关于雅虎天气的相关资源和使用介绍,见我的另一篇文章《【Arduino】【ESP】使用Arduino(ESP8266版本)获取雅虎天气信息,并使用点阵显示......进行中》。
简单说说代码:
1、 new Weather("26198084");// zaoZhuang 传入的是雅虎天气枣庄的Woeid,查询看这里“中国地区雅虎WOEID.xlsx”。传入后获得温湿度、日出日落时间、风速、实时天气和未来十天的天气等信息,保存在变量中。
2、 URL urlObject = new URL(url);传入指定格式的雅虎天气查询Url,返回的是固定格式的Json数据。详细见下图。
3、 这里需要导入json.jar包,可以去网上下载
JSONObject jsonObjectAll = new JSONObject(strJson);// get Channel:query->results->channel
jsonObjectChannel = jsonObjectAll.getJSONObject("query").getJSONObject("results").getJSONObject("channel");
创建JSONObject,调用getJSONObject,返回指定key的数据。可以参考这篇文章《Java构造和解析Json数据的两种方法详解一》Json常用函数:
2)创建JSON