场景:在开发时,定义的返回前端的实体类有十几个参数,有多个接口共用了这个实体类,导致在使用时有些字段为空不需要在这个接口返回的也返回给前端了,在自己调试时因为参数太多,眼花缭乱的不好看,所以我们使用以下方法解决。
方案:
在实体类上添加注解
@JsonInclude(JsonInclude.Include.NON_EMPTY)
可配置的值描述:
ALWAYS // 默认策略,任何情况都执行序列化
NON_NULL // 非空
NON_ABSENT // null的不会序列化,但如果类型是AtomicReference,依然会被序列化
NON_EMPTY // null、集合数组等没有内容、空字符串等,都不会被序列化
NON_DEFAULT // 如果字段是默认值,就不会被序列化
CUSTOM // 此时要指定valueFilter属性,该属性对应一个类,用来自定义判断被JsonInclude修饰的字段是否序列化
USE_DEFAULTS // 当JsonInclude在类和属性上都有时,优先使用属性上的注解,此时如果在序列化的get方法上使用了JsonInclude,并设置为USE_DEFAULTS,就会使用类注解的设置