《JSON序列化与反序列化.pdf》由会员分享,可在线阅读,更多相关《JSON序列化与反序列化.pdf(2页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、方法一:方法一:引入 System.Web.Script.Serialization 命名空间使用 JavaScriptSerializer 类实现简单的序列化序列化类:Personnelpublic class Personnelpublic int Id get;set;public string Name get;set;执行序列化反序列化:代码protected void Page_Load(object sender,EventArgs e)Personnel personnel=new Personnel();personnel.Id=1;personnel.Name=小白;Jav
2、aScriptSerializer jsonSerializer=new JavaScriptSerializer();/执行序列化string r1=jsonSerializer.Serialize(personnel);/执行反序列化Personnel _Personnel=jsonSerializer.Deserialize(r1);r1输出结果:Id:1,Name:小白可以使用 ScriptIgnore 属性标记不序列化公共属性或公共字段。public class PersonnelScriptIgnorepublic int Id get;set;public string Name
3、 get;set;r1输出结果:Name:小白方法二:方法二:引入 System.Runtime.Serialization.Json 命名空间使用 DataContractJsonSerializer 类实现序列化序列化类:Peoplepublic class Peoplepublic int Id get;set;public string Name get;set;执行序列化反序列化代码protected void Page_Load(object sender,EventArgs e)People people=new People();people.Id=1;people.Name=
4、小白;DataContractJsonSerializer json=new DataContractJsonSerializer(people.GetType();string szJson=;/序列化using(MemoryStream stream=new MemoryStream()json.WriteObject(stream,people);szJson=Encoding.UTF8.GetString(stream.ToArray();/反序列化using(MemoryStream ms=new MemoryStream(Encoding.UTF8.GetBytes(szJson)
5、DataContractJsonSerializer serializer=new DataContractJsonSerializer(typeof(People);People _people=(People)serializer.ReadObject(ms);szJson 输出结果:Id:1,Name:小白可以使用IgnoreDataMember:指定该成员不是数据协定的一部分且没有进行序列化,DataMember:定义序列化属性参数,使用 DataMember 属性标记字段必须使用 DataContract标记类 否则 DataMember 标记不起作用。代码DataContractpublic class PeopleDataMember(Name=id)public int Id get;set;IgnoreDataMemberpublic string Name get;set;输出结果:id:1
限制150内