博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[Json.net]忽略不需要的字段
阅读量:6852 次
发布时间:2019-06-26

本文共 1169 字,大约阅读时间需要 3 分钟。

摘要

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

系列文章

一个例子

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类

转载于:https://www.cnblogs.com/wolf-sun/p/5714589.html

你可能感兴趣的文章
想要成为一个人,先按那个人的要求去做,你自然就成了那个人(转)
查看>>
Codeforces Round #425 (Div. 2) - A
查看>>
mysql学习【第12篇】:数据库之视图,触发器,事务等
查看>>
hdu4982 Goffi and Squary Partition (DFS解法)
查看>>
Bash Shell 获取进程 PID
查看>>
RHEL7安装部署RabbitMQ
查看>>
关于站在移动物上的问题
查看>>
UVA 11205 The broken pedometer
查看>>
直击微软MIX11 聚焦IE10、Silverlight5、WP7
查看>>
MVC工作原理
查看>>
斐波那契数列Log(n)算法
查看>>
信息处理,分而治之-- ESFramework 使用技巧
查看>>
SQL Server 查询计划总结
查看>>
60幅精美绝伦的绘景(Matte Paintings)作品欣赏(下篇)
查看>>
解决 IE6 position:fixed 固定定位问题
查看>>
Lucene 3.5 提供深度分页支持 searchAfter方法 方法的应用
查看>>
javascript hasOwnProperty 函数
查看>>
Bash中关于日期时间操作的常用自定义函数
查看>>
如何卸载和安装Wscript.Shell,FSO和stream对象
查看>>
shell:读取文件的每一行内容并输出
查看>>