码迷,mamicode.com
首页 > Web开发 > 详细

[Json.net]忽略不需要的字段

时间:2016-07-28 15:44:05      阅读:1147      评论:0      收藏:0      [点我收藏+]

标签:

摘要

在序列化对象,总会遇到一些敏感的信息,这些信息,并不想对调用接口的用户暴露出来,又或者移动端调用接口的时候,为了不返回没用的信息占用流量,这个时候也需要把一些信息给过滤掉。

系列文章

[Json.net]快速入门

[Json.net]Linq to Json

一个例子

namespace Json.NetDemo
{
    class User
    {

        public string Name { set; get; }

        public string Pwd { set; get; }

        public DateTime Birthday { set; get; }
    }
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine(JsonConvert.SerializeObject(new User { Name = "wolfy", Pwd = "12334", Birthday = DateTime.Now }));
            Console.Read();
        }
    }
}

User类是一个再普通不过的一个类了。这个时候有其他的client需要调用接口查找该用户的信息。这个时候如果直接把序列化的结果返回,这个时候就会把pwd字段暴露给调用方。

技术分享

Json.net有一些特性个作用在字段或者属性上面

JsonIgnoreAttribute

序列化的时候忽略字段或者属性

JsonPropertyAttribute

可以通过这个特性对字段进行重命名。

JsonConverterAttribute

指定序列化器。用于指派转换对象的JsonSerializer。这个特性可以修饰类或类成员。用于修饰类时,通过此特性指派的JsonConverter会被设置为序列化类的默认方式。用于修饰属性或域成员时,被指派的JsonConverter会序列化它们的值。

    class User
    {
        [JsonProperty("UserName")]
        public string Name { set; get; }
        [JsonIgnore]
        public string Pwd { set; get; }
        [JsonConverter(typeof(IsoDateTimeConverter))]
        public DateTime Birthday { set; get; }
    }

通过上面的特性改造user类

技术分享

[Json.net]忽略不需要的字段

标签:

原文地址:http://www.cnblogs.com/wolf-sun/p/5714589.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!