1. 程式人生 > >C#解析和風天氣返回的JSON資料

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