在開(kāi)發(fā)中,我非常喜歡動(dòng)態(tài)語(yǔ)言和匿名對(duì)象帶來(lái)的方便,JSON.NET具有動(dòng)態(tài)序列化和反序列化任意JSON內(nèi)容的能力,不必將它映射到具體的強(qiáng)類(lèi)型對(duì)象,它可以處理不確定的類(lèi)型(集合、字典、動(dòng)態(tài)對(duì)象和匿名對(duì)象),在這篇文章中我將通過(guò)JToken、JObject和JArray來(lái)動(dòng)態(tài)解析JSON對(duì)象,使它很容易創(chuàng)建和檢索的JSON內(nèi)容而無(wú)需基礎(chǔ)類(lèi)型。通過(guò)JObject和JArray創(chuàng)建JSON對(duì)象我們先用非常簡(jiǎn)單的方法來(lái)動(dòng)態(tài)創(chuàng)建一些JSON,可通過(guò)JToken派生的JSON.NET對(duì)象來(lái)進(jìn)行,最常見(jiàn)的JToken派生的類(lèi)是JObject和JArray。
因?yàn)镴Token實(shí)現(xiàn)了IDynamicMetaProvider動(dòng)態(tài)語(yǔ)言接口,所以可以使用dynamic關(guān)鍵字直觀地創(chuàng)建動(dòng)態(tài)對(duì)象,并把這個(gè)動(dòng)態(tài)對(duì)象序列化為JSON字符串。
Newtonsoft.Json的地址:
官網(wǎng):http://json.codeplex.com/
源碼地址:https://github.com/JamesNK/Newtonsoft.Json
Newtonsoft.Json.dll下載:https://github.com/JamesNK/Newtonsoft.Json/releases
例子1、
通過(guò)JArray和JObject來(lái)創(chuàng)建一個(gè)音樂(lè)專(zhuān)輯結(jié)構(gòu)的一個(gè)示例:
//Newtonsoft.Json.Linq.JObject jsonObject = new Newtonsoft.Json.Linq.JObject {{"Entered", DateTime.Now}}; Newtonsoft.Json.Linq.JObject jsonObject = new Newtonsoft.Json.Linq.JObject(); jsonObject.Add("Entered", DateTime.Now); dynamic album = jsonObject; album.AlbumName = "