网站导航网学 原创论文 原创专题 网站设计 最新系统 原创论文 论文降重 发表论文 论文发表 UI设计定制 论文答辩PPT格式排版 期刊发表 论文专题
返回网学首页
网学原创论文
最新论文 推荐专题 热门论文 论文专题
当前位置: 网学 > 设计资源 > .Net编程 > 正文

JSON序列化与反序列化

论文降重修改服务、格式排版等 获取论文 论文降重及排版 论文发表 相关服务

方法一:引入System.Web.Script.Serialization命名空间使用 JavaScriptSerializer类实现简单的序列化
序列化类:Personnel

  1. public class Personnel 
  2.     public int Id { get; set; } 
  3.     public string Name { get; set; } 

执行序列化反序列化

  1. protected void Page_Load(object sender, EventArgs e) 
  2.     Personnel personnel = new Personnel(); 
  3.     personnel.Id = 1; 
  4.     personnel.Name = "小白"
  5.  
  6.  
  7.     JavaScriptSerializer jsonSerializer = new JavaScriptSerializer(); 
  8.     //执行序列化 
  9.     string r1 = jsonSerializer.Serialize(personnel); 
  10.      
  11.     //执行反序列化 
  12.     Personnel _Personnel = jsonSerializer.Deserialize<Personnel>(r1); 
  13.  } 

r1输出结果:{"Id":1,"Name":"小白"}
可以使用 ScriptIgnore属性标记不序列化公共属性或公共字段。

  1. public class Personnel 
  2.     [ScriptIgnore] 
  3.     public int Id { getset; } 
  4.     public string Name { getset; } 

r1输出结果:{"Name":"小白"}
方法二:引入 System.Runtime.Serialization.Json命名空间使用 DataContractJsonSerializer类实现序列化
序列化类:People

  1. public class People 
  2.     public int Id { getset; } 
  3.     public string Name { getset; } 

 执行序列化反序列化

  1. protected void Page_Load(object sender, EventArgs e) 
  2.     People people = new People(); 
  3.     people.Id = 1; 
  4.     people.Name = "小白"
  5.  
  6.  
  7.     DataContractJsonSerializer json = new DataContractJsonSerializer(people.GetType()); 
  8.     string szJson = ""
  9.     //序列化 
  10.     using (MemoryStream stream = new MemoryStream()) 
  11.     { 
  12.         json.WriteObject(stream, people); 
  13.         szJson = Encoding.UTF8.GetString(stream.ToArray()); 
  14.     } 
  15.     //反序列化 
  16.     using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(szJson))) 
  17.     { 
  18.         DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(People)); 
  19.         People _people = (People)serializer.ReadObject(ms); 
  20.     } 
  21.  } 

szJson输出结果:{"Id":1,"Name":"小白"}
可以使用IgnoreDataMember:指定该成员不是数据协定的一部分且没有进行序列化,DataMember:定义序列化属性参数,使用DataMember属性标记字段必须使用DataContract标记类 否则DataMember标记不起作用。

  1. [DataContract] 
  2. public class People 
  3.     [DataMember(Name = "id")] 
  4.     public int Id { getset; } 
  5.     [IgnoreDataMember] 
  6.     public string Name { getset; } 

输出结果: {"id":1}

设为首页 | 加入收藏 | 网学首页 | 原创论文 | 计算机原创
版权所有 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2020 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 常年法律顾问:王律师