gpt4 book ai didi

浅析JSON序列化与反序列化

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 27 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章浅析JSON序列化与反序列化由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

方法一:引入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序列化与反序列化的文章就讲到这里了,如果你想了解更多关于浅析JSON序列化与反序列化的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com