下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Json是一種通用的數(shù)據(jù)格式,我們?cè)跀?shù)據(jù)交換的時(shí)候,經(jīng)常會(huì)用到,下面介紹c#中的json序列化和反序列化,當(dāng)然也可用在,silverlight,wpf中。我們?cè)谙旅鎸?shí)例講解如何進(jìn)行Json的序列化和反序列化,本文介紹兩種方案,.net 3.5原生Json操作和J中的Json操作。首先,我們先建立一個(gè)測(cè)試對(duì)象,用來(lái)序列化和反序列化。1234567public class Personpublic int ID get; set; public string Name get; set; public int Age get; set; public DateTime
2、BirthDay get; set; 第一種,利用.Net Framework 3.5中原生的Json操作類庫(kù),特點(diǎn)就是不需要導(dǎo)入第三方類庫(kù),比較方便,速度上一般,而且需要.Net Framework的支持,我們知道現(xiàn)在還有很多服務(wù)器沒(méi)有升級(jí)到.Net Framework 3.5,就用不了這個(gè)了。首先導(dǎo)入下面類庫(kù),并加入下面代碼System.ServiceModelSystem.ServiceModel.Web12345678910111213141516171819202122class Programstatic void Main(string args)/創(chuàng)建測(cè)試對(duì)象Person p
3、= new Person();p.ID = 1;p.Name = 張三;p.Age = 20;p.BirthDay = DateTime.Now.AddYears(-20);/將對(duì)象轉(zhuǎn)化成Json字符串DataContractJsonSerializer ds = new DataContractJsonSerializer(typeof(Person);using (MemoryStream ms = new MemoryStream()ds.WriteObject(ms, p);string output = Encoding.UTF8.GetString(ms.ToArray();Con
4、sole.WriteLine(output);輸出結(jié)果這個(gè)是.Net Framework 3.5原生的序列化方式,接著,我們介紹反序列化方式,還是同樣的加入下面代碼123456789101112131415161718192021222324252627282930313233class Programstatic void Main(string args)/創(chuàng)建測(cè)試對(duì)象Person p = new Person();p.ID = 1;p.Name = 張三;p.Age = 20;p.BirthDay = DateTime.Now.AddYears(-20);/將對(duì)象轉(zhuǎn)化成Json字符串st
5、ring output = string.Empty;DataContractJsonSerializer ds = new DataContractJsonSerializer(typeof(Person);using (MemoryStream ms = new MemoryStream()ds.WriteObject(ms, p);output = Encoding.UTF8.GetString(ms.ToArray();/將Json字符串轉(zhuǎn)化成對(duì)象DataContractJsonSerializer outDs = new DataContractJsonSerializer(type
6、of(Person);using (MemoryStream outMs = new MemoryStream(Encoding.UTF8.GetBytes(output)Person outPerson = outDs.ReadObject(outMs) as Person;Console.WriteLine(ID: + outPerson.ID);Console.WriteLine(Name: + outPerson.Name);Console.WriteLine(Age: + outPerson.Age);Console.WriteLine(Birthday: + outPerson.B
7、irthDay);輸出結(jié)果我們從.Net Framework 3.5原生的Json序列化及反序列化方式中,可以看出,還是相當(dāng)麻煩的。很多網(wǎng)友也會(huì)問(wèn)如果是.Net Framework 2.0該怎么辦呢?下面,我們介紹一個(gè)第三方的Json序列化和反序列化類庫(kù),來(lái)完成上面操作,這個(gè)類庫(kù)是有.Net Framework 2.0的版本的哦,而且這個(gè)類庫(kù)還可以支持xml的序列化和反序列化操作(本文不做講解)。下面看操作。1234567891011121314151617class Programstatic void Main(string args)/創(chuàng)建測(cè)試對(duì)象Person p = new Perso
8、n();p.ID = 1;p.Name = 張三;p.Age = 20;p.BirthDay = DateTime.Now.AddYears(-20);/將對(duì)象轉(zhuǎn)化成Json字符串string output = JsonConvert.SerializeObject(p);Console.WriteLine(output);輸出結(jié)果這個(gè)是Json序列化方法,是不是簡(jiǎn)單了很多呢?1234567891011121314151617181920212223class Programstatic void Main(string args)/創(chuàng)建測(cè)試對(duì)象Person p = new Person();
9、p.ID = 1;p.Name = 張三;p.Age = 20;p.BirthDay = DateTime.Now.AddYears(-20);/將對(duì)象轉(zhuǎn)化成Json字符串string output = JsonConvert.SerializeObject(p);/將Json字符串轉(zhuǎn)化成對(duì)象Person outPerson = JsonConvert.DeserializeObject(output);Console.WriteLine(ID: + outPerson.ID);Console.WriteLine(Name: + outPerson.Name);Console.WriteLine(Age: + outPerson.
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026福建同安第一中學(xué)附屬學(xué)校校園招聘?jìng)淇碱}庫(kù)附答案
- 2026福建省遴選公務(wù)員403人參考題庫(kù)附答案
- 2026福建福州市司法局行政復(fù)議輔助人員招聘3人參考題庫(kù)附答案
- 2026貴州貴陽(yáng)市某國(guó)有企業(yè)招聘2人考試備考題庫(kù)附答案
- 2026青海海西州格爾木市公安局招聘警務(wù)輔助人員46人參考題庫(kù)附答案
- 中共臺(tái)州市路橋區(qū)委全面深化改革委員會(huì)辦公室關(guān)于公開(kāi)選聘工作人員1人備考題庫(kù)附答案
- 常州市武進(jìn)區(qū)前黃實(shí)驗(yàn)學(xué)校招聘考試備考題庫(kù)附答案
- 河南省科學(xué)院碳基復(fù)合材料研究院科研輔助人員招聘?jìng)淇碱}庫(kù)附答案
- 紀(jì)檢監(jiān)察基礎(chǔ)知識(shí)
- 紀(jì)檢監(jiān)察培訓(xùn)課件匯編
- DBJ50-T-410-2022預(yù)制溝槽泡沫混凝土保溫板地面輻射供暖技術(shù)標(biāo)準(zhǔn)
- 化工總控工職業(yè)技能鑒定考試題庫(kù)大全-中(多選、多選題)
- (2025)時(shí)事政治題庫(kù)(含參考答案)
- 2024年北京第二次高中學(xué)考物理試卷(含答案詳解)
- 湖南省株洲市2023-2024學(xué)年八年級(jí)上學(xué)期語(yǔ)文期末考試試卷(含答案)
- 掛靠工程合同范本
- “大唐杯”全國(guó)大學(xué)生新一代信息通信技術(shù)競(jìng)賽題庫(kù)
- 碧桂園物業(yè)管家述職報(bào)告
- 數(shù)字經(jīng)濟(jì)學(xué)-課件 第4章 網(wǎng)絡(luò)效應(yīng)
- 2025企業(yè)年會(huì)總結(jié)大會(huì)跨越新起點(diǎn)模板
- 2024年山東省中考語(yǔ)文試卷十三套合卷附答案
評(píng)論
0/150
提交評(píng)論