ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

Java开发笔记

2026/8/5 8:33:30 拓冰建站 浏览量
Java开发笔记

一、参数校验

1、校验json字符串是否符合规范

  (1)业务场景:接收前端传输过来的json串,需要将其写入数据库,写入之前需要校验其是否能够转换成对应实体类,以便后续从数据库读取
  (2)方法:借助jackson中的反序列化工具,当字符串不符合json格式或出现实体类中不存在的字段时,会报错。步骤如下:
  【1】引入依赖

        <dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.15.2</version></dependency>

注意:如果你的项目已经引入了spring-boot-starter依赖,那么就不需要重复引入,spring-boot-starter已自带jackson
在这里插入图片描述
  【2】校验代码

public class User {private int id;private String name;public User() {}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}
}
    @Testpublic void test() {String json1 = "{\"id\":1,\"name\":\"张三\",\"age\":18}";String json2 = "acg";String json3 = "{\"id\":1,\"name\":\"张三\"}";ObjectMapper objectMapper = new ObjectMapper();try {objectMapper.readValue(json1, User.class);System.out.println("json1校验成功!!");} catch (JsonProcessingException e) {System.out.println("json1校验失败!!");}try {objectMapper.readValue(json2, User.class);System.out.println("json2校验成功!!");} catch (JsonProcessingException e) {System.out.println("json2校验失败!!");}try {objectMapper.readValue(json3, User.class);System.out.println("json3校验成功!!");} catch (JsonProcessingException e) {System.out.println("json3校验失败!!");}}

  【3】运行结果
   json1多出了一个age字段,校验不通过
   json2格式错误,校验不通过
   json3格式正确且User类包含该json所有字段,校验通过
注意:实体类必须提供无参构造方法以及set方法

json1校验失败!!
json2校验失败!!
json3校验成功!!