@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;
    }
}
相关文章
|
编译器 API 容器
Compose:从重组谈谈页面性能优化思路,狠狠优化一笔
Compose:从重组谈谈页面性能优化思路,狠狠优化一笔
1170 0
|
JSON Java Maven
Springboot2.0快速入门(第一章)
Springboot2.0快速入门(第一章)
|
3月前
|
人工智能 JSON BI
DeepSeek V4 来了!超越 Claude Sonnet 4.5,赶紧对接 Claude Code 体验一把
JeecgBoot AI专题研究 把 Claude Code 接入 DeepSeek V4Pro 的真实体验与避坑记录 本文记录我将 Claude Code 对接 DeepSeek 最新模型(V4Pro)后的真实体验,测试了 Skills 自动化查询和积木报表 AI 建表两个场景——有惊喜,也踩
10658 21
|
JSON 前端开发 Java
深入理解 Spring Boot 中日期时间格式化:@DateTimeFormat 与 @JsonFormat 完整实践
在 Spring Boot 开发中,日期时间格式化是前后端交互的常见痛点。本文详细解析了 **@DateTimeFormat** 和 **@JsonFormat** 两个注解的用法,分别用于将前端传入的字符串解析为 Java 时间对象,以及将时间对象序列化为指定格式返回给前端。通过完整示例代码,展示了从数据接收、业务处理到结果返回的全流程,并总结了解决时区问题和全局配置的最佳实践,助你高效处理日期时间需求。
2212 0
|
存储 前端开发 Java
Element el-upload 文件上传/图片上传/拖拽上传/附带参数/附带请求头部详解
文目录 1. 前言 2. 基本用法 2.1 前端部分 2.2 后端部分 2.3 获取后端返回信息 3. 外观功能介绍 3.1 拖拽上传 3.2 显示图片 3.3 设置文件列表样式 3.4 显示提示信息 4. 事件功能介绍 4.1 限制上传文件数量 4.2 限制上传文件类型和大小 4.3 移除文件处理 4.4 手动上传 5. 附带参数 6. 附带请求头部 7. 小结
8533 0
|
JSON 安全 算法
Spring Boot 应用如何实现 JWT 认证?
Spring Boot 应用如何实现 JWT 认证?
2067 8
|
前端开发 数据库
两步教你ruoyi若依跳过前端拦截器变成自己的前端
如何通过修改前端配置和后端设置来跳过若依(RuoYi)前端的token验证,以便复用其前端框架并将其变成自己的前端。
 两步教你ruoyi若依跳过前端拦截器变成自己的前端
|
SQL 前端开发 关系型数据库
芋道框架万字详解(前后端分离)、若依框架、yudao-cloud保姆级攻略
芋道框架万字详解(前后端分离)、若依框架、yudao-cloud保姆级攻略
24501 7
|
Java 数据库连接 数据库
mybatis-plus报错:Can not find table primary key in Class
mybatis-plus报错:Can not find table primary key in Class
2700 1