如何在ASP.NET默认库的JSON输出中移除或隐藏默认属性
解决代码输出多余属性的问题
- 先查父类继承:如果你的实体/数据类继承了父类,父类里的属性可能被自动序列化输出了,要么给父类多余属性加忽略注解,要么序列化时指定只处理当前类的属性。
- 检查序列化框架配置:比如用Jackson的话,给类加
@JsonInclude(JsonInclude.Include.NON_NULL)只输出非空属性,或者用@JsonProperty逐个指定要输出的4个属性,剩下的自动排除。要是用Spring的话,也可以在全局配置里设置只序列化显式声明的属性。 - 排查隐式赋值逻辑:看看代码里有没有AOP切面、工具类自动给对象加了额外属性,比如某些审计字段、追踪ID,这些可能是你没注意到的隐式赋值导致输出多余内容。
- 换用DTO做中转:如果上面的方法都不好使,直接新建一个只有4个目标属性的DTO类,把原对象的属性赋值到DTO里再返回,从根源上杜绝多余属性出现。
内容的提问来源于stack exchange,提问作者XedDevil
相关产品推荐
相关产品推荐

