最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
当前位置: 首页 - 科技 - 知识百科 - 正文

浅析JSON序列化与反序列化

来源:懂视网 责编:小采 时间:2020-11-27 20:26:25
文档

浅析JSON序列化与反序列化

浅析JSON序列化与反序列化:方法一:引入System.Web.Script.Serialization命名空间使用 JavaScriptSerializer类实现简单的序列化序列化类:Personnel public class Personnel { public int Id { get; set; } public string Name { get;
推荐度:
导读浅析JSON序列化与反序列化:方法一:引入System.Web.Script.Serialization命名空间使用 JavaScriptSerializer类实现简单的序列化序列化类:Personnel public class Personnel { public int Id { get; set; } public string Name { get;

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

 public class Personnel
 {
 public 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 = "小白";
 JavaScriptSerializer jsonSerializer = new JavaScriptSerializer();
 //执行序列化
 string r1 = jsonSerializer.Serialize(personnel);

 //执行反序列化
 Personnel _Personnel = jsonSerializer.Deserialize<Personnel>(r1);
 }

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

 public class Personnel
 {
 [ScriptIgnore]
 public int Id { get; set; }
 public string Name { get; set; }
 }

r1输出结果:{"Name":"小白"}

方法二:引入 System.Runtime.Serialization.Json命名空间使用 DataContractJsonSerializer类实现序列化

序列化类:People

 public class People
 {
 public 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 = "小白";

 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)))
 {
 DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(People));
 People _people = (People)serializer.ReadObject(ms);
 }
 }

szJson输出结果:{"Id":1,"Name":"小白"}

可以使用IgnoreDataMember:指定该成员不是数据协定的一部分且没有进行序列化,DataMember:定义序列化属性参数,使用DataMember属性标记字段必须使用DataContract标记类 否则DataMember标记不起作用。

[DataContract]
 public class People
 {
 [DataMember(Name = "id")]
 public int Id { get; set; }
 [IgnoreDataMember]
 public string Name { get; set; }
 }

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

更多浅析JSON序列化与反序列化相关文章请关注PHP中文网!

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文档

浅析JSON序列化与反序列化

浅析JSON序列化与反序列化:方法一:引入System.Web.Script.Serialization命名空间使用 JavaScriptSerializer类实现简单的序列化序列化类:Personnel public class Personnel { public int Id { get; set; } public string Name { get;
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top