C#的序列化与反序列化

目录

一、Json序列化、反序列化

二、Xml序列化、反序列化 


一、Json序列化、反序列化

方式一:使用Newtonsoft.Json安装包(推荐

常用方法:

JsonConvert.SerializeObject()                //序列化

JsonConvert.DeserializeObject()          //反序列化 

方式二:使用DataContractJsonSerializer

        注意:  序列化类要添加[DataContract]特性

                     序列化类成员要添加[DataMember]特性

   DataContractJsonSerializer json= new DataContractJsonSerializer(typeof(List));
   using (MemoryStream ms = new MemoryStream())
   {
     json.WriteObject(ms, jsonTests);
     res=Encoding.UTF8.GetString(ms.ToArray());
   }
   tbox.Text = res;

        反序列化用ReadObject()方法

二、Xml序列化、反序列化  

  1. 引入命名空间System.Xml.Serialization;
  2. 创建XmlSerializer类实例(通过构造函数指定类型);
  3. 使用Serialize()方法序列化;
  4. 使用Deserialize()方法反序列化
  XmlSerializer xml = new XmlSerializer(jsonTests.GetType());
  var path = Path.Combine(Directory.GetCurrentDirectory(), @"../../Xml", "mydata.xml");
  using (FileStream fs = new FileStream(path, FileMode.OpenOrCreate))
  {
     xml.Serialize(fs, jsonTests);      //Xml序列化   
  }
  using (FileStream fs = new FileStream(path, FileMode.Open))
  {
    //XmlReader reader = new XmlTextReader(fs);
     var data = xml.Deserialize(fs) as List;         //Xml反序列化
     tbox2.Text = data[0].Name +"\n"+ data[0].Value;
  }

你可能感兴趣的:(开发语言,c#)