@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

相关文章

轻松上手MYSQL之JSON函数实现高效数据查询与操作

《轻松上手MYSQL之JSON函数实现高效数据查询与操作》:本文主要介绍轻松上手MYSQL之JSON函数实现高效数据查询与操作的相关资料,MySQL提供了多个JSON函数,用于处理和查询JSON数... 目录一、jsON_EXTRACT 提取指定数据二、JSON_UNQUOTE 取消双引号三、JSON_KE

MySQL数据库函数之JSON_EXTRACT示例代码

《MySQL数据库函数之JSON_EXTRACT示例代码》:本文主要介绍MySQL数据库函数之JSON_EXTRACT的相关资料,JSON_EXTRACT()函数用于从JSON文档中提取值,支持对... 目录前言基本语法路径表达式示例示例 1: 提取简单值示例 2: 提取嵌套值示例 3: 提取数组中的值注意

SpringBoot定制JSON响应数据的实现

《SpringBoot定制JSON响应数据的实现》本文主要介绍了SpringBoot定制JSON响应数据的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们... 目录前言一、如何使用@jsonView这个注解?二、应用场景三、实战案例注解方式编程方式总结 前言

JSON字符串转成java的Map对象详细步骤

《JSON字符串转成java的Map对象详细步骤》:本文主要介绍如何将JSON字符串转换为Java对象的步骤,包括定义Element类、使用Jackson库解析JSON和添加依赖,文中通过代码介绍... 目录步骤 1: 定义 Element 类步骤 2: 使用 Jackson 库解析 jsON步骤 3: 添

IDEA如何将String类型转json格式

《IDEA如何将String类型转json格式》在Java中,字符串字面量中的转义字符会被自动转换,但通过网络获取的字符串可能不会自动转换,为了解决IDEA无法识别JSON字符串的问题,可以在本地对字... 目录问题描述问题原因解决方案总结问题描述最近做项目需要使用Ai生成json,可生成String类型

Spring常见错误之Web嵌套对象校验失效解决办法

《Spring常见错误之Web嵌套对象校验失效解决办法》:本文主要介绍Spring常见错误之Web嵌套对象校验失效解决的相关资料,通过在Phone对象上添加@Valid注解,问题得以解决,需要的朋... 目录问题复现案例解析问题修正总结  问题复现当开发一个学籍管理系统时,我们会提供了一个 API 接口去

Python中json文件和jsonl文件的区别小结

《Python中json文件和jsonl文件的区别小结》本文主要介绍了JSON和JSONL两种文件格式的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下... 众所周知,jsON 文件是使用php JSON(JavaScripythonpt Object No

使用Java解析JSON数据并提取特定字段的实现步骤(以提取mailNo为例)

《使用Java解析JSON数据并提取特定字段的实现步骤(以提取mailNo为例)》在现代软件开发中,处理JSON数据是一项非常常见的任务,无论是从API接口获取数据,还是将数据存储为JSON格式,解析... 目录1. 背景介绍1.1 jsON简介1.2 实际案例2. 准备工作2.1 环境搭建2.1.1 添加

Java解析JSON的六种方案

《Java解析JSON的六种方案》这篇文章介绍了6种JSON解析方案,包括Jackson、Gson、FastJSON、JsonPath、、手动解析,分别阐述了它们的功能特点、代码示例、高级功能、优缺点... 目录前言1. 使用 Jackson:业界标配功能特点代码示例高级功能优缺点2. 使用 Gson:轻量

python中json.dumps和json.dump区别

《python中json.dumps和json.dump区别》json.dumps将Python对象序列化为JSON字符串,json.dump直接将Python对象序列化写入文件,本文就来介绍一下两个... 目录1、json.dumps和json.dump的区别2、使用 json.dumps() 然后写入文