@Validated校验多层json

2024-05-10 18:20
文章标签 校验 json 多层 validated

本文主要是介绍@Validated校验多层json,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

请求体

{"aid":123,"name": "abc","phone": "13333333333","address":"abcdefgh","region":{"province":234,"district":445,"city":3,"full_name":"辽宁 大连"}
}

 


@RestController
@RequestMapping("api/user/address")
@Api(tags = "用户地址管理")
public class AddressController {@Resource@NotLogin@PostMapping("/add")@ApiOperation(value="添加地址")public AjaxResult<Object> add(@Validated(AddressValidate.Basic.class) @RequestBody AddressValidate addressValidate) {return AjaxResult.success(addressValidate);}@NotLogin@PostMapping("/edit")@ApiOperation(value="添加地址")public AjaxResult<Object> edit(@Validated(AddressValidate.Update.class) @RequestBody AddressValidate addressValidate) {return AjaxResult.success(addressValidate);}}

 AddressValidate.java

package com.mdd.front.validate.users;import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;import javax.validation.Valid;
import javax.validation.constraints.*;
import java.io.Serializable;
@Data
@ApiModel("更新地址")
public class AddressValidate implements Serializable {private static final long serialVersionUID = 1L;public interface Basic {}public interface Update extends Basic {}@NotNull(groups = Update.class, message = "地址ID参数缺失")@ApiModelProperty(value = "地址ID", required = true)private Integer aid;@NotNull(groups = Basic.class, message = "联系人参数缺失")@NotBlank(groups = Basic.class, message = "联系人不能为空")@Size(groups = Basic.class, min = 2, message="联系人最少2个字")@ApiModelProperty(value = "联系人", required = true)private String name;@NotNull(groups = Basic.class, message = "联系电话参数缺失")@NotBlank(groups = Basic.class, message = "联系电话不能为空")@Size(groups = Basic.class, min = 11, max = 11, message="电话应为11位")@Pattern(groups = Basic.class, regexp = "^[1][3,4,5,6,7,8,9][0-9]{9}$", message = "手机号格式有误")@ApiModelProperty(value = "联系电话", required = true)private String phone;@NotNull(groups = Basic.class, message = "详细地址参数缺失")@NotBlank(groups = Basic.class, message = "详细地址不能为空")@Size(groups = Basic.class, min = 6, message="详细地址最少6个字")@ApiModelProperty(value = "详细地址", required = true)private String address;@NotNull(groups = Basic.class, message = "地区参数缺失")@Validprivate Region region;@Datapublic static class Region {@NotNull(groups = Basic.class, message = "province参数缺失")@ApiModelProperty(value = "省", required = true)private Integer province;@NotNull(groups = Basic.class, message = "city参数缺失")@ApiModelProperty(value = "市", required = true)private Integer city;@NotNull(groups = Basic.class, message = "district参数缺失")@ApiModelProperty(value = "区", required = true)private Integer district;@NotNull(groups = Basic.class, message = "full_name参数缺失")@ApiModelProperty(value = "地区全称", required = true)private String full_name;}
}

这篇关于@Validated校验多层json的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/977200

相关文章

SpringBoot中如何使用Assert进行断言校验

《SpringBoot中如何使用Assert进行断言校验》Java提供了内置的assert机制,而Spring框架也提供了更强大的Assert工具类来帮助开发者进行参数校验和状态检查,下... 目录前言一、Java 原生assert简介1.1 使用方式1.2 示例代码1.3 优缺点分析二、Spring Fr

MySQL查询JSON数组字段包含特定字符串的方法

《MySQL查询JSON数组字段包含特定字符串的方法》在MySQL数据库中,当某个字段存储的是JSON数组,需要查询数组中包含特定字符串的记录时传统的LIKE语句无法直接使用,下面小编就为大家介绍两种... 目录问题背景解决方案对比1. 精确匹配方案(推荐)2. 模糊匹配方案参数化查询示例使用场景建议性能优

解决未解析的依赖项:‘net.sf.json-lib:json-lib:jar:2.4‘问题

《解决未解析的依赖项:‘net.sf.json-lib:json-lib:jar:2.4‘问题》:本文主要介绍解决未解析的依赖项:‘net.sf.json-lib:json-lib:jar:2.4... 目录未解析的依赖项:‘net.sf.json-lib:json-lib:jar:2.4‘打开pom.XM

SpringBoot排查和解决JSON解析错误(400 Bad Request)的方法

《SpringBoot排查和解决JSON解析错误(400BadRequest)的方法》在开发SpringBootRESTfulAPI时,客户端与服务端的数据交互通常使用JSON格式,然而,JSON... 目录问题背景1. 问题描述2. 错误分析解决方案1. 手动重新输入jsON2. 使用工具清理JSON3.

Springboot3+将ID转为JSON字符串的详细配置方案

《Springboot3+将ID转为JSON字符串的详细配置方案》:本文主要介绍纯后端实现Long/BigIntegerID转为JSON字符串的详细配置方案,s基于SpringBoot3+和Spr... 目录1. 添加依赖2. 全局 Jackson 配置3. 精准控制(可选)4. OpenAPI (Spri

MySQL JSON 查询中的对象与数组技巧及查询示例

《MySQLJSON查询中的对象与数组技巧及查询示例》MySQL中JSON对象和JSON数组查询的详细介绍及带有WHERE条件的查询示例,本文给大家介绍的非常详细,mysqljson查询示例相关知... 目录jsON 对象查询1. JSON_CONTAINS2. JSON_EXTRACT3. JSON_TA

Java中JSON格式反序列化为Map且保证存取顺序一致的问题

《Java中JSON格式反序列化为Map且保证存取顺序一致的问题》:本文主要介绍Java中JSON格式反序列化为Map且保证存取顺序一致的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未... 目录背景问题解决方法总结背景做项目涉及两个微服务之间传数据时,需要提供方将Map类型的数据序列化为co

Python FastAPI实现JWT校验的完整指南

《PythonFastAPI实现JWT校验的完整指南》在现代Web开发中,构建安全的API接口是开发者必须面对的核心挑战之一,本文将深入探讨如何基于FastAPI实现JWT(JSONWebToken... 目录一、JWT认证的核心原理二、项目初始化与环境配置三、安全密码处理机制四、JWT令牌的生成与验证五、

使用Java将实体类转换为JSON并输出到控制台的完整过程

《使用Java将实体类转换为JSON并输出到控制台的完整过程》在软件开发的过程中,Java是一种广泛使用的编程语言,而在众多应用中,数据的传输和存储经常需要使用JSON格式,用Java将实体类转换为J... 在软件开发的过程中,Java是一种广泛使用的编程语言,而在众多应用中,数据的传输和存储经常需要使用j

Spring Validation中9个数据校验工具使用指南

《SpringValidation中9个数据校验工具使用指南》SpringValidation作为Spring生态系统的重要组成部分,提供了一套强大而灵活的数据校验机制,本文给大家介绍了Spring... 目录1. Bean Validation基础注解常用注解示例在控制器中应用2. 自定义约束验证器定义自