C#如何簡單快速的解析復雜的JSON格式接口數據


一、背景介紹

之前有個碰到一個學員問阿笨老師,說他現在工作內容是對外對接第三方API接口,但是文檔中有大量的接口是一大堆復雜的JSON格式的字符串(比如:有單個對象,有數組對象,還有多層嵌套對象等等,他說不會解析為C#對象,問能不能幫助一下他,教他一下以后如何碰到這類復雜的JSON格式都會進行解析。俗話說的好:授人以魚不如授人以漁!希望這么一點小技能能夠幫助到有需要的同學哈。

二、提出問題

一般API接口都會有一個自己定義的標准的響應的數據格式,比如這位同學對接的API接口數據格式說明(如下圖),從圖中我們可以看到code節點和message節點是固定響應頭,唯一變化的是data節點。那么大家有沒有想到變化的類型在C#中我們可以用什么類型進行替代呢?答案想必大家都知道,那就是泛型T。

 

二、分析問題

先來一個簡單一點的JSON格式:

再來稍微一點復雜的JSON格式

如果接口字段少一點的話,我們還可以JSON節點通過手動進行Mapping映射為C#實體對象屬性。那么如果接口字段比較多,數據類型比較復雜,而且層級嵌套比較深的話,有沒有簡單快速的方式進行自動化的方式自動生成Mapping映射我們想要的C#實體對象呢?答案:是肯定的!!!接下來阿笨將給大家推薦幾種方式,敬請拭目以待。

三、解決問題

1)、在線json生成C#實體工具類,這里阿笨推薦下面兩款

http://www.jsons.cn/jsontomodel/

http://www.bejson.com/convert/json2csharp

使用方式很簡單,復制JSON格式字符串,直接點擊生成C#實體對象類。

2)、VS2019自動格式轉換。

1、復制你要轉換的JSON格式字符串。(記住一定要先復制自己想要轉換的JSON格式字符串哦)

2、打開VS2019(其他低版本VS版本阿笨沒測試,自己去試一下哦),找到【編輯】-【選擇性粘貼】-【將JSON粘貼為類】

所有的工具都不是萬能的,轉換后的格式需要自己驗證一下是否合理哦。不過大家放心,大部分的JSON類型的字符串類型都可以做到一鍵生成。哈哈,有點類似代碼生成器的感覺,太爽了。

四、嘮叨了這么多,阿笨快來上干貨

給大家寫了幾個示例DEMO,只要能夠掌握這幾個示例,以后解析任何復雜類型的JSON字符串都沒有障礙了。

核心的一句話是:json字符串反序列化為C#對象,C#對象序列化為JSON字符串。

示例一:簡單格式的JSO你字符串:

示例二:稍微復雜一點的字符串

 

 

示例三:Dictionary<string, object> 轉JSON字符串

示例四:數組[] 轉JSON字符串

示例五:集合轉JSON數組

 

五、源代碼示例下載

掃碼關注下方微信公眾號,回復n80c關鍵字獲取源代碼下載地址。

有問題微信公眾號回復wx關鍵字,加阿笨的個人微信號。

 


免責聲明!

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



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