新聞中心
這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
C#怎么實(shí)現(xiàn)JSON與對(duì)象之間互相轉(zhuǎn)換功能-創(chuàng)新互聯(lián)
這篇文章主要介紹C#怎么實(shí)現(xiàn)JSON與對(duì)象之間互相轉(zhuǎn)換功能,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!
1.首先是聲明用戶信息對(duì)象,DataContract修飾類,表示可以被解析成JSON,DataMember修飾屬性,Order表示 解析的順序,另外Lover是數(shù)組列表,表示女朋友個(gè)數(shù)
Address 表示送貨地址,DailyRecord 表示日常記錄
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Runtime.Serialization; namespace FunctionTest.Model { [DataContract] public class UserInfo { [DataMember(Order =0)] public string UserName { get; set; } [DataMember(Order = 1)] public int Age { get; set; } [DataMember(Order = 2)] public int Gender { get; set; } [DataMember(Order =3)] public ListLover { get; set; } [DataMember(Order = 4)] public ContactAddress Address { get; set; } [DataMember(Order = 5)] public Dictionary DailyRecord { get; set; } } [DataContract] public class ContactAddress { [DataMember(Order =0)] public string Province { get; set; } [DataMember(Order = 1)] public string City { get; set; } [DataMember(Order = 2)] public string Country { get; set; } [DataMember(Order = 3)] public string Details { get; set; } } }
2.JSON幫助類 核心代碼
////// Json轉(zhuǎn)換成對(duì)象 /// ////// /// public static T JsonToObject (string jsonText) { DataContractJsonSerializer s = new DataContractJsonSerializer(typeof(T)); MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonText)); T obj = (T)s.ReadObject(ms); ms.Dispose(); return obj; } /// /// 對(duì)象轉(zhuǎn)換成JSON /// ////// /// public static string ObjectToJSON (T obj) { DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(T)); string result = string.Empty; using (MemoryStream ms = new MemoryStream()) { serializer.WriteObject(ms, obj); ms.Position = 0; using (StreamReader read = new StreamReader(ms)) { result = read.ReadToEnd(); } } return result; }
3.調(diào)用
//1.對(duì)象-->JSON UserInfo info = new UserInfo { Age = 10, Gender = 1, UserName = "劉德華", Lover = new List{ "美女1", "美女2", "美女3" }, Address = new ContactAddress { Province = "湖南省", City = "長沙市", Country = "望城縣", Details = "某旮旯快遞找不到的地方" }, DailyRecord = new Dictionary { { "星期一", "吃飯" }, { "星期二", "洗衣服" }, { "星期三", "好事情" } } }; string json = ObjectToJSON (info);
4.反序列化后的結(jié)果
代碼如下:
{"UserName":"劉德華","Age":10,"Gender":1,"Lover":["美女1","美女2","美女3"],"Address":{"Province":"湖南省","City":"長沙市","Country":"望城縣", "Details":"某旮旯快遞找不到的地方"},"DailyRecord":[{"Key":"星期一","Value":"吃飯"},{"Key":"星期二","Value":"洗衣服"},{"Key":"星期三","Value":"好事情"}]}
以上是C#怎么實(shí)現(xiàn)JSON與對(duì)象之間互相轉(zhuǎn)換功能的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
網(wǎng)頁名稱:C#怎么實(shí)現(xiàn)JSON與對(duì)象之間互相轉(zhuǎn)換功能-創(chuàng)新互聯(lián)
標(biāo)題網(wǎng)址:http://www.dlmjj.cn/article/epsch.html