C#解析Json數據(利用Newtonsoft.Json庫)


今天想做個快遞查詢軟件玩玩,手頭有個快遞查詢api,它返回的數據是Json,百度了一下如何用C#解析Json數據,終於慢慢理解。所以現在寫篇日志記錄一下。
本文章用到的類庫:http://pan.baidu.com/s/1hqEOfli

當然你也可以到官網去下載。地址:http://www.newtonsoft.com/json

 

使用api返回類似以下數據,如果看不懂,可以先去看Json數據是如何組織的。

 

{
"status":"3", "message":"", "errCode":"0", "data":[ {"time":"2015-05-28 20:26","context":"福建省泉州市晉江市公司 已收件"}, {"time":"2015-05-28 21:26","context":"福建省泉州市晉江市公司 已打包"}, {"time":"2015-05-30 08:44","context":"廣西省桂林市公司 已發出"}, {"time":"2015-05-30 14:50","context":"廣西省桂林市七星區育才路分部公司 派件中"}, {"time":"2015-05-31 18:11","context":"廣西省桂林市七星區育才路分部公司 已簽收"} ], "html":"", "mailNo":"500151529838", "expTextName":"圓通快遞", "expSpellName":"yuantong", "update":"1433655616", "cache":"0", "ord":"ASC", "tel":"95554" }

 

我們下載好類庫后,添加類庫到引用

 

using Newtonsoft.Json;

 

然后寫兩個類實體,List對應Json的數組,類的成員名要和上面的Json數據一致。

public class JsonParser { public int status; public int errCode; public string message; public string html; public int mailTo; public string tel; public string expTextName; public List data; } public class Data { public string time; public string context; } 

上面的Json數據中,如果只想取data數據中的time字段和context字段的內容。可以這樣寫:

 //反序列化Json數據 JsonParser jp = (JsonParser)JsonConvert.DeserializeObject(result);//result為上面的Json數據 List list = jp.data; list = jp.data; StringBuilder sb = new StringBuilder(); foreach(Data data in list){ sb.Append(data.time+"\t"); sb.Append(data.context + "\r\n\r\n"); } 

上面的代碼,如果打印sb.ToString()的結果就會打印出以下內容:

 

2015-05-28 20:26 福建省泉州市晉江市公司 已收件 2015-05-28 21:26 福建省泉州市晉江市公司 已打包 2015-05-30 08:44 廣西省桂林市公司 已發出 2015-05-30 14:50 廣西省桂林市七星區育才路分部公司 派件中 2015-05-31 18:11 廣西省桂林市七星區育才路分部公司 已簽收

說明我們解析成功了。
最后送上快遞查詢的源代碼
鏈接:https://pan.baidu.com/s/1yPM8r33bWszIK6QCaOqamg 密碼:6b0i


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM