• 企业400电话
  • 网络优化推广
  • AI电话机器人
  • 呼叫中心
  • 全 部 栏 目

    网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    浅析JSON序列化与反序列化
    POST TIME:2021-10-18 02:52

    方法一:引入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.DeserializePersonnel>(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}

    您可能感兴趣的文章:
    • javascript JSON操作入门实例
    • Json操作库DynamicJson使用指南
    • Json对象与Json字符串互转(4种转换方式)
    • js 将json字符串转换为json对象的方法解析
    • js中将字符串转换成json的三种方式
    • 解析JSON对象与字符串之间的相互转换
    • JSON.stringify 语法实例讲解
    • JS对象与JSON格式数据相互转换
    • Json序列化和反序列化方法解析
    • JS实现json的序列化和反序列化功能示例
    • JavaScript常见JSON操作实例分析
    上一篇:VB.NET设置屏幕分辨率、颜色位数、刷新率 实例代码
    下一篇:如何在不同.net版本实现单点登录
  • 相关文章
  • 

    关于我们 | 付款方式 | 荣誉资质 | 业务提交 | 代理合作


    © 2016-2020 巨人网络通讯

    时间:9:00-21:00 (节假日不休)

    地址:江苏信息产业基地11号楼四层

    《增值电信业务经营许可证》 苏B2-20120278

    X

    截屏,微信识别二维码

    微信号:veteran88

    (点击微信号复制,添加好友)

     打开微信