Fork me on GitHub
代码改变世界

Json.Net组件指定/忽略序列化字段属性技巧知识点

2016-07-20 11:41  沉睡的木木夕  阅读(981)  评论(0编辑  收藏  举报

  我们在用Json.Net序列化组件序列化类的时候,经常有这样的一个需求:指定被序列化类中的某些字段属性是要忽略的,或者是指定字段属性序列化

  比如下面这个类:

 public class Bar
    {
        public int ID { get; set; }

        public string Name { get; set; }

        public string Email { get; set; }

        public string Address { get; set; }

        public Baz Baz { get; set; }
    }

    public class Baz { 
        
    }

我要序列化其中的属性ID,Name 忽略其他的怎么写呢

    [System.Runtime.Serialization.DataContract]
    public class Bar
    {
        [System.Runtime.Serialization.DataMember]
        public int ID { get; set; }
        [System.Runtime.Serialization.DataMember]
        public string Name { get; set; }

        public string Email { get; set; }

        public string Address { get; set; }

        public Baz Baz { get; set; }
    }

其中DataMember特性就是说明该成员属性是指定被序列化的,与此同时,在类外还要加上DataContract序列化契约特性

其实忽略的用法也一样,用的同程序集下的IgnoreDataMember特性

我们这里讲的Json.Net,所以这个组件同样有这个功能

    public class Bar
    {
        [Newtonsoft.Json.JsonIgnore]
        public int ID { get; set; }
        [Newtonsoft.Json.JsonIgnore]
        public string Name { get; set; }

        public string Email { get; set; }

        public string Address { get; set; }

        public Baz Baz { get; set; }
    }