@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;
    }
}
相关文章
极简了解GET、POST、DELETE、PUT区别
极简了解GET、POST、DELETE、PUT区别
|
12月前
|
数据可视化 项目管理
提升团队沟通协作:ORID聚焦式会话法应用技巧
ORID(Objective, Reflective, Interpretive, Decisional)是一种结构化的讨论方法,能帮助团队成员全面了解问题,在讨论中达成共识,并做出高效决策。
483 5
提升团队沟通协作:ORID聚焦式会话法应用技巧
|
JSON JavaScript 前端开发
Jackson学习笔记
这篇文章是关于Jackson库的学习笔记,提供了Jackson工具包的下载方法,如何在IDEA中使用Maven导入Jackson依赖,以及如何在SpringMVC中使用Jackson进行JSON数据的转换和处理。
Jackson学习笔记
|
存储 安全 Java
Android DataStore:安全存储和轻松管理数据
Android DataStore:安全存储和轻松管理数据
|
存储 小程序 物联网
|
存储 缓存 JSON
Go Modules:Go语言依赖管理的新篇章
Go Modules是Go 1.11引入的依赖管理标准,解决`GOPATH`的依赖冲突问题。
288 1
|
存储 JSON Java
spring boot3登录开发-1(整合jwt)
spring boot3登录开发-1(整合jwt)
554 1
|
存储 程序员 Shell
【C/C++ 内存管理函数】C语言动态内存管理大揭秘:malloc、calloc、realloc与new的对比与差异
【C/C++ 内存管理函数】C语言动态内存管理大揭秘:malloc、calloc、realloc与new的对比与差异
611 0
|
JSON 数据格式
@JsonInclude(JsonInclude.Include.NON_EMPTY)注解含义
@JsonInclude(JsonInclude.Include.NON_EMPTY)注解含义
1017 0
@JsonInclude(JsonInclude.Include.NON_EMPTY)注解含义
|
SQL 关系型数据库 MySQL
如何往MySQL中插入100万条数据?
往MySQL中大批量插入数据的正确做法
448 0