進(jìn)階之路—序列化及反序列化 Json 篇

本章,我們繼續(xù)講解序列化和反序列化的應(yīng)用,之所以把 Json 單獨列一篇有幾個原因:Json 更符合現(xiàn)在人們在生產(chǎn)過程中的需求,體積小,效率高,而且在 Web 項目中基本都是使用 Json 與前端進(jìn)行交互的,因為 Json 本身就是以文本的形式表現(xiàn) javascript 對象的一種形式,其本質(zhì)是一個字符串。在接下來的文章中,我會介紹三種 Json 序列化方式。

1.DataContractJsonSerializer:DataContractJsonSerializer 類幫助我們序列化和反序列化 Json ,他在程序集?System.Runtime.Serialization?下的?System.Runtime.Serialization.Json?命名空間里。

json序列化發(fā)序列化代碼

因為 Json 的本身是對對象的字符串表現(xiàn)形式,所以在使用 DataContractJson 序列化器的時候需要在創(chuàng)建序列化器的的同時傳進(jìn)對象類型,而且 DataContractJson 序列化器也只能對實體類對象進(jìn)行操作,不能對 list 對象操作。


生成的文件以及序列化后的json片段


反序列化后的結(jié)果

可以看出,Json 格式的文本還是比較易讀的,清晰規(guī)范

json.cn

對比 XML 格式的文檔,Json 雖然也好閱讀,但是卻有一個問題, XML 的標(biāo)簽結(jié)點是可以自定義的,也就意味著如果缺少結(jié)尾節(jié)點是不會有什么大的影響,最多就是不夠規(guī)范,但是 Json 不同,沒有結(jié)點的定義,導(dǎo)致只要出現(xiàn)一點不規(guī)范,就會造成文件無法讀取的現(xiàn)象。

2.JavaScriptJsonSerializer: 通過 JavaScriptSerializer 來實現(xiàn)。它的名字空間為:System.Web.Script.Serialization 如果要使用它,還須添加

System.Web.Extensions 庫文件引用


使用javascript序列化器的后臺代碼

使用 javascript 序列化器是不需要傳入對象類型的。

javascript序列化器生成的文件


反序列化出的實體對象

3.JSON.NET : 這種方式是通過第三方類庫 newtonsoft.JSON 來實現(xiàn)的,首先我們們需要在 工具 -> NuGet包管理器 -> 解決方案的 NuGet 程序包?中將?newtonsoft.JSON 安裝進(jìn)去,如圖:


搜索json.net

安裝之后我們只需要在程序中引用 Newtonsoft.Json 命名空間就可以使用了

通過Newtonsoft.json序列化的代碼
使用Newtonsoft.json生成的結(jié)果
反序列化的結(jié)果

最后還要說一句的是,以上三種 Json 序列化的方式,從性能方面來講,最好的是 NewTonSoft.Json 的第三方類庫,而微軟本身框架自帶的方式性能卻不及第三方,也是蠻有趣的。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 在編程中我們時常聽到序列化和反序列化這兩個詞,但是對于一些剛?cè)腴T的新手來講,序列化和反序列化是什么東西,又不得而知...
    李九lijiu閱讀 2,362評論 1 2
  • JAVA序列化機制的深入研究 對象序列化的最主要的用處就是在傳遞,和保存對象(object)的時候,保證對象的完整...
    時待吾閱讀 11,192評論 0 24
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,564評論 19 139
  • 一、 序列化和反序列化概念 Serialization(序列化)是一種將對象以一連串的字節(jié)描述的過程;反序列化de...
    步積閱讀 1,493評論 0 10
  • “三八”女神節(jié)這天,我和閨蜜一起看了部美片―《一條狗的使命》,劇情看起來既輕松愉悅,又溫暖感人,賺取了我不少寶貴的...
    陶語閱讀 632評論 14 9

友情鏈接更多精彩內(nèi)容