C#解析和風天氣返回的JSON資料
阿新 • • 發佈:2018-11-11
一、前言
最近在用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