博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Json.net 忽略实体某些属性的序列化
阅读量:5769 次
发布时间:2019-06-18

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

遇到了一个小问题

有一个用户类,结构和数据库一模一样,里面包含用户密码,要向前台返回用户信息的json数据,但是不能输出密码这个字段。
之前的做法是 重新又建了一个不包含这个字段的新类,然后深度复制,总感觉这中方式有点笨拙。受人启发么,想起来json.net中有一个

能控制被序列化为一个json对象中的属性的特性,就找找有没有能屏蔽实体属性的特性

果然

using Newtonsoft.Json;using Newtonsoft.Json.Converters;using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace ConsoleApplication1{    [JsonObject(MemberSerialization.OptIn)]    public class User    {        [JsonProperty(PropertyName = "ID")]        public int Unid { get; set; }        [JsonProperty]        public string UserName { get; set; }        [JsonProperty]        [JsonConverter(typeof(IsoDateTimeConverter))]        public DateTime CreateTime { get; set; }        [JsonIgnoreAttribute]        public string PasssWord { get; set; }        public string Memo { get; set; }    }}

附带解释

JsonObjectAttribute

这个标签的成员序列化标志指定成员序列化是opt-in(要序列化的成员必须带有JsonProperty或DataMember标签)还是opt-out(默认所有的都会序列化,但通过JsonIgnoreAttribute标签可以忽略序列化。opt-out是json.net默认的)。

 

JsonPropertyAttribute

允许被序列化的成员自定义名字。这个标签同时标示出:在成员序列化设置为opt-in的时候,成员会被序列化。

 

JsonIgnoreAttribute

忽略域或属性的序列化

 

JsonConverterAttribute

用于指派转换对象的JsonSerializer。

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

 

转载于:https://www.cnblogs.com/baobaodong/p/4647694.html

你可能感兴趣的文章
Linux下DHCP服务器配置
查看>>
AndroidStudio中导入SlidingMenu报错解决方案
查看>>
我的IDEA配置
查看>>
myeclipse显示行号
查看>>
编写高性能的java程序
查看>>
Spring 的配置详解
查看>>
linux已经不存在惊群现象
查看>>
上位机和底层逻辑的解耦
查看>>
关于微信二次分享 配置标题 描述 图片??
查看>>
springcloud使用zookeeper作为config的配置中心
查看>>
校园火灾Focue-2---》洗手间的一套-》电梯
查看>>
css控制文字换行
查看>>
bzoj1913
查看>>
bzoj2301(莫比乌斯反演)
查看>>
【转】对于HttpClient和HtmlUnit的理解
查看>>
L104
查看>>
分镜头脚本
查看>>
链表基本操作的实现(转)
查看>>
邮件发送1
查看>>
[转] libcurl异步方式使用总结(附流程图)
查看>>