@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;
    }
}
相关文章
|
4月前
|
Java Spring 容器
详解java参数校验之:顺序校验、自定义校验、分组校验(@Validated @GroupSequence)
详解java参数校验之:顺序校验、自定义校验、分组校验(@Validated @GroupSequence)
|
前端开发 Java 数据库
Spring Entity数据校验,分组校验,返回校验结果给前端
Spring Entity数据校验,分组校验,返回校验结果给前端
93 0
|
5月前
|
数据格式 Python
添加 自定义校验方法,让用户自定义校验规则
添加 自定义校验方法,让用户自定义校验规则
72 0
|
前端开发 Java 数据库
SpringBoot分组校验及自定义校验注解
在日常的开发中,参数校验是非常重要的一个环节,严格参数校验会减少很多出bug的概率,增加接口的安全性。在此之前写过一篇SpringBoot统一参数校验主要介绍了一些简单的校验方法。而这篇则是介绍一些进阶的校验方式。比如说:在某个接口编写的过程中肯定会遇到,当xxType值为A,paramA值必传。xxType值为B,paramB值必须传。对于这样的,通常的做法就是在controller加上各种if判断。显然这样的代码是不够优雅的,而分组校验及自定义参数校验,就是来解决这个问题的。
接口参数注解验证案例
写作缘由 写接口的时候经常会有请求体里某字段不为null的需求;也有使用一个dto对象,但是插入和修改都想使用这个dto,那这样的话判断条件就不一样,因为修改操作必须有ID,所以参数验证还是挺麻烦的。所以写个demo记录一下,亲测可用。
133 0
|
JSON 搜索推荐 Java
自定义规则异常返回|学习笔记
快速学习自定义规则异常返回
165 0
自定义规则异常返回|学习笔记
AOP + 注解 实现通用的接口参数校验
写移动端接口的时候,为了校验参数,传统的做法是加各种判断,写了很多重复的代码,而且也不美观。为了增加代码复用性,美观的校验参数,采用AOP + 注解的方式来实现接口的参数校验(使用拦截器也可以实现),在需要校验参数的方法上加上自定义的注解即可。
299 0
AOP + 注解 实现通用的接口参数校验