麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

Json的序列化與反序列化以及亂入的k_BackingField

2019-11-17 02:18:00
字體:
供稿:網(wǎng)友

Json的序列化與反序列化以及亂入的k_BackingField

今天需要使用Json數(shù)據(jù),所以用到了Json的序列化與反序列化。首先先來說怎么序列化的:

1.序列化與反序列化

  首先添加System.Runtime.Serialization的引用

Object轉(zhuǎn)換成Json文件:

      public static string ObjectToJson(object obj)        {            DataContractJsonSerializer ser = new DataContractJsonSerializer(obj.GetType());            using (MemoryStream ms = new MemoryStream())            {                ser.WriteObject(ms, obj);                return Encoding.Default.GetString(ms.ToArray());            }        }

Json數(shù)據(jù)轉(zhuǎn)換成Object 

    public static T JsonToObject<T>(string json) where T : class        {            DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T));            using (MemoryStream ms = new MemoryStream(Encoding.Default.GetBytes(json)))            {                return (T)ser.ReadObject(ms);            }        }

程序比較簡單我就不多說了,剛開始實體類是這樣的:

  [Serializable]    class User    {        public int Age { get; set; }        public string Name { get; set; }        public User(string name, int age)        {            Age = age;            Name = name;        }    }

然后調(diào)用:

    static void Main(string[] args)        {            var user1 = new User("zhangsan", 18);            var users = new List<User> { user1, new User("lisi", 23 ) };            var strUser1 = ObjectToJson(user1);            var setUsers = ObjectToJson(users);        }

加入斷點,查看json數(shù)據(jù),

居然莫名其妙出現(xiàn)了亂入的k__BackingField

2.亂入的k__BackingField的解決方案

  從網(wǎng)上找了好多資料也沒搞明白是為啥會出現(xiàn)這個問題。想了解的可以參考下這個。不過找到了解決方案,這里記錄下:

只需要將實體類改成如下形式:

  [DataContract]    class User    {        [DataMember]        public int Age { get; set; }        [DataMember]        public string Name { get; set; }        public User(string name, int age)        {            Age = age;            Name = name;        }    }

再監(jiān)視下就不會出現(xiàn)k__BackingField。Json數(shù)據(jù)轉(zhuǎn)換成實體的調(diào)用也很簡單:

static void Main(string[] args)        {            var user1 = new User("zhangsan", 18);            var users = new List<User> { user1, new User("lisi", 23 ) };            var strUser1 = ObjectToJson(user1);            var strUsers = ObjectToJson(users);            var user11 = JsonToObject<User>(strUser1);            var users1 = JsonToObject<List<User>>(strUsers);        }


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 久久综合av | 中文字幕一区二区三区久久 | 又黄又爽免费无遮挡在线观看 | 久久中文字幕在线观看 | 久草免费资源视频 | 99精品国产一区二区三区 | 怦然心动50免费完整版 | 在线视频观看成人 | 91成人在线免费观看 | a视频在线播放 | 男女视频免费看 | 依人九九宗合九九九 | 国产电影av在线 | 精品国产九九九 | 2019中文字幕在线播放 | 免费激情视频网站 | 午夜天堂在线 | 午夜视频在线免费 | 久久精品九九 | 91精品国产99久久久久久红楼 | 曰批全过程120分钟免费69 | 4399一级成人毛片 | 亚洲精品aⅴ中文字幕乱码 欧美囗交 | 日本成人在线播放 | 91午夜免费视频 | 圆产精品久久久久久久久久久 | 免费一级特黄毛片 | 国产毛片aaa一区二区三区视频 | 国产成人av免费看 | 久久99国产精品久久99 | 欧美日本在线视频 | 欧美1—12sexvideos| 国产手机av在线 | 久久96国产精品久久久 | 久久福利精品 | 久久成人精品视频 | 精品国产91久久久久久久 | 伊久在线 | 日本精品二区 | 国产一级二级毛片 | 91成人精品 |