C#解析和风天气返回的JSON数据

一、前言

最近在用c#做一个项目,需要获取实时天气信息,调研了好多能够提供该服务的服务器,最终决定使用和风天气。官网如下:https://www.heweather.com/。通过发送相应的请求,我们得到服务器返回的数据。如下所示:

{"HeWeather6":[{"basic":{"cid":"CN101120206","location":"黄岛","parent_city":"青岛","admin_area":"山东","cnty":"中国","lat":"35.87513733","lon":"119.99552155","tz":"+8.00"},"update":{"loc":"2018-10-18 08:45","utc":"2018-10-18 00:45"},"status":"ok","now":{"cloud":"0","cond_code":"100","cond_txt":"晴","fl":"11","hum":"47","pcpn":"0.0","pres":"1024","tmp":"13","vis":"30","wind_deg":"311","wind_dir":"西北风","wind_sc":"2","wind_spd":"9"}}]}

我想得到"cond_txt"键所对应的天气情况的内容,应该如何解析呢?

二、Newtonsoft.Json.dll控件的使用

我们借助强大的Newtonsoft.Json.dll控件来帮助我们解析json格式的数据。该控件完全开源,官方网址:https://www.newtonsoft.com/json,大家可以从该网址下载该控件,并且有相关的使用说明。也可以去我的资源页找我分享的,https://download.csdn.net/download/wwwlyj123321/10728473。下载完成之后在C#的工程中添加引用,

using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using Newtonsoft.Json.Converters;

这样基本的框架就搭建完成了。

三、转换json格式为C#类

我们需要对应的变量来存储Newtonsoft解析出来的数据。我们可以直接使用该网站来自动生成http://json2csharp.chahuo.com/

将服务器返回的内容复制粘贴到待转换的区域:

点击转换:

将转换完成的类复制到我们的C#工程即可。

四、获取天气内容

我们的天气内容存储在cond_txt键所对用的内容中,解析之后就很容易提取出来,相关代码如下:

           RootObject deserializedProduct = JsonConvert.DeserializeObject<RootObject>(result1);
           HeWeather6  heweather6  =  deserializedProduct.HeWeather6[0];
           Now now = heweather6.now;
           String weatherinfo = now.cond_txt;

其中result1就是我们从服务器获得的json格式的数据,weatherinfo就是我们想要获得的天气情况。

ref:

https://blog.csdn.net/weixin_39874268/article/details/77302255 

猜你喜欢

转载自blog.csdn.net/wwwlyj123321/article/details/83141219