Json序列化和反序列化(两种方式)

发布时间 2023-12-18 17:18:29作者: 四月柳巷
序列化:对象--->Json 反序列化:Json--->对象
方式1:.NET3.5自带类库实现
.net3.5提供了json对象序列化与反序列化的类。位置在:System.Runtime.Serialization.Json空间下。其中如果要应用这个空间还必须添加对
System.ServiceModel
System.ServiceModel.Web
这两个库文件的引用。
        public class Student
        {
            public int ID { get; set; }

            public string Name { get; set; }

            public int Age { get; set; }

            public string Sex { get; set; }
        }
        #region(使用 DataContractJsonSerializer 序列化,.net3.5)
        public string ToJson(Student St)//序列化
        {

            DataContractJsonSerializer dj = new DataContractJsonSerializer(typeof(Student));
            MemoryStream ms = new MemoryStream();
            dj.WriteObject(ms, St);
            string strReturn = Encoding.UTF8.GetString(ms.ToArray());
            ms.Close();
            return strReturn;
        }
        public object FromJson(string strJson)//反序列化
        {
            DataContractJsonSerializer dj = new DataContractJsonSerializer(typeof(Student));
            MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(strJson));
            return dj.ReadObject(ms);
        }
        #endregion
方式2:使用Newtonsoft.Json.dll文件来实现

        #region(使用JsonConvert序列化,需要引用Newtonsoft.json)
        public string ToJson2(object ob)//序列化
        {
            string json = JsonConvert.SerializeObject(ob);
            return json;
        }
    
        public object FromJson2(string strjson)
        {
            object ob1 = JsonConvert.DeserializeObject(strjson);
            return ob1;
        } 
        #endregion