@JsonInclude注解增加自定义校验规则

简介: 顺便看看@JsonInclude的常用策略

顺便看看@JsonInclude的常用策略:


JsonInclude.Include.ALWAYS 默认策略,无论如何都会序列化该字段,写不写效果都一样;

JsonInclude.Include.NON_NULL 最常用,如果该字段为null,就不序列化;

JsonInclude.Include.NON_ABSENT 没用过,不清楚。

JsonInclude.Include.NON_EMPTY 这个属性包含NON_NULL,NON_ABSENT之后还包含如果字段为空也不序列化。

JsonInclude.Include.NON_DEFAULT 这个属性是如果该字段为默认值的话就不序列化。

JsonInclude.Include.USE_DEFAULTS 如果有默认值的话就不序列化。

JsonInclude.Include.CUSTOM 这个就是自定义校验规则,下面详细讲:


如何使用:

value = JsonInclude.Include.CUSTOM

@JsonInclude(value = JsonInclude.Include.CUSTOM, valueFilter = UsernameFilter.class)
private String username;

自定义一个UsernameFilter类:

重写它的equals方法,在里面做你的校验逻辑,如果返回true,就不序列化 username 字段

public class UsernameFilter{
    @Override
    public boolean equals(Object obj) {
        if(//todo) return true
        return false;
    }
}
相关文章
|
7月前
|
Java Spring 容器
详解java参数校验之:顺序校验、自定义校验、分组校验(@Validated @GroupSequence)
详解java参数校验之:顺序校验、自定义校验、分组校验(@Validated @GroupSequence)
|
8月前
ElementUi配置自定义校验规则-校验IP和IP段
ElementUi配置自定义校验规则-校验IP和IP段
352 1
|
前端开发 Java 数据库
Spring Entity数据校验,分组校验,返回校验结果给前端
Spring Entity数据校验,分组校验,返回校验结果给前端
108 0
|
8月前
|
SQL 测试技术 数据安全/隐私保护
密码组件校验规则该如何测试?
密码组件校验规则该如何测试?
115 0
|
8月前
|
数据格式 Python
添加 自定义校验方法,让用户自定义校验规则
添加 自定义校验方法,让用户自定义校验规则
89 0
|
前端开发 Java 数据库
SpringBoot分组校验及自定义校验注解
在日常的开发中,参数校验是非常重要的一个环节,严格参数校验会减少很多出bug的概率,增加接口的安全性。在此之前写过一篇SpringBoot统一参数校验主要介绍了一些简单的校验方法。而这篇则是介绍一些进阶的校验方式。比如说:在某个接口编写的过程中肯定会遇到,当xxType值为A,paramA值必传。xxType值为B,paramB值必须传。对于这样的,通常的做法就是在controller加上各种if判断。显然这样的代码是不够优雅的,而分组校验及自定义参数校验,就是来解决这个问题的。
|
JSON 搜索推荐 Java
自定义规则异常返回|学习笔记
快速学习自定义规则异常返回
自定义规则异常返回|学习笔记