這篇文章將為大家詳細(xì)講解有關(guān)C#怎么解析復(fù)雜的JSON格式接口數(shù)據(jù),小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
南芬ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為成都創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:028-86922220(備注:SSL證書合作)期待與您的合作!
一般API接口都會(huì)有一個(gè)自己定義的標(biāo)準(zhǔn)的響應(yīng)的數(shù)據(jù)格式,比如這位同學(xué)對接的API接口數(shù)據(jù)格式說明(如下圖),從圖中我們可以看到code節(jié)點(diǎn)和message節(jié)點(diǎn)是固定響應(yīng)頭,唯一變化的是data節(jié)點(diǎn)。那么大家有沒有想到變化的類型在C#中我們可以用什么類型進(jìn)行替代呢?答案想必大家都知道,那就是泛型T。
先來一個(gè)簡單一點(diǎn)的JSON格式:
再來稍微一點(diǎn)復(fù)雜的JSON格式
如果接口字段少一點(diǎn)的話,我們還可以JSON節(jié)點(diǎn)通過手動(dòng)進(jìn)行Mapping映射為C#實(shí)體對象屬性。那么如果接口字段比較多,數(shù)據(jù)類型比較復(fù)雜,而且層級嵌套比較深的話,有沒有簡單快速的方式進(jìn)行自動(dòng)化的方式自動(dòng)生成Mapping映射我們想要的C#實(shí)體對象呢?答案:是肯定的?。?!接下來阿笨將給大家推薦幾種方式,敬請拭目以待。
1)、在線json生成C#實(shí)體工具類,這里阿笨推薦下面兩款
http://www.jsons.cn/jsontomodel/
http://www.bejson.com/convert/json2csharp
使用方式很簡單,復(fù)制JSON格式字符串,直接點(diǎn)擊生成C#實(shí)體對象類。
2)、VS2019自動(dòng)格式轉(zhuǎn)換。
1、復(fù)制你要轉(zhuǎn)換的JSON格式字符串。(記住一定要先復(fù)制自己想要轉(zhuǎn)換的JSON格式字符串哦)
2、打開VS2019(其他低版本VS版本阿笨沒測試,自己去試一下哦),找到【編輯】-【選擇性粘貼】-【將JSON粘貼為類】
所有的工具都不是萬能的,轉(zhuǎn)換后的格式需要自己驗(yàn)證一下是否合理哦。不過大家放心,大部分的JSON類型的字符串類型都可以做到一鍵生成。哈哈,有點(diǎn)類似代碼生成器的感覺,太爽了。
給大家寫了幾個(gè)示例DEMO,只要能夠掌握這幾個(gè)示例,以后解析任何復(fù)雜類型的JSON字符串都沒有障礙了。
核心的一句話是:json字符串反序列化為C#對象,C#對象序列化為JSON字符串。
示例一:簡單格式的JSO你字符串:
示例二:稍微復(fù)雜一點(diǎn)的字符串
示例三:Dictionary<string, object> 轉(zhuǎn)JSON字符串
JSON代碼:
{
"ids":[1,2,3]
}
對應(yīng)的生成C#代碼
public class OrderInfo
{
public List<int> ids { get; set; }
}
關(guān)于“C#怎么解析復(fù)雜的JSON格式接口數(shù)據(jù)”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯(cuò),請把它分享出去讓更多的人看到。
網(wǎng)頁題目:C#怎么解析復(fù)雜的JSON格式接口數(shù)據(jù)
網(wǎng)頁URL:http://jinyejixie.com/article44/joooee.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機(jī)、網(wǎng)站設(shè)計(jì)公司、軟件開發(fā)、營銷型網(wǎng)站建設(shè)、用戶體驗(yàn)、搜索引擎優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)