【问题标题】:Pojo to json with validationsPojo 到带有验证的 json
【发布时间】:2020-04-03 08:28:27
【问题描述】:

我有以下课程

public class Person {
   public String id;
    public String firstname;
    public String lastname;
    public String gender;
    public String profession;

我有人员列表 listPerson。我需要将其转换为 JSON,但我需要实现一些验证,例如名字大小应该大于 3,id 不应该为空。

我能够将 listPerson 转换为 JSON 字符串,但无法实现验证。如何实现验证?

我正在使用带有 java 8 的 Spring Boot 最新版本。

ObjectMapper mapper = new ObjectMapper();
    String jsonInString = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(listPerson);
        stem.out.println(jsonInString);

【问题讨论】:

  • 为什么 JSON 转换器要进行验证?您可以在转换之前检查对象(转换不会更改您的数据)

标签: json spring spring-boot jackson


【解决方案1】:

对于验证字段,您需要使用 javax 验证注释,如 @NotNull, @Size, @NotBlank 等。

public class Person {

    @NotBlank
    public String id;
    @Size(min = 4)
    public String firstname;
    public String lastname;
    public String gender;
    public String profession;
}

要调用手动验证,你需要自动绑定Validator

@Autowired
private Validator validator;

现在你可以调用validate函数

    validator.validate(personObject);

【讨论】:

  • 如何编写手动验证并添加。 @Size(min = 4) 在我的代码中不起作用
  • 检查你导入了什么。导入 javax 验证
  • 我导入正确。我做了这个 validator.validate(listPerson);
  • com.rahul.kafkaproducer.producer.Csv 中的字段验证器需要找不到类型为“javax.validation.Validator”的 bean。注入点有以下注解: - @org.springframework.beans.factory.annotation.Autowired(required=true)
  • 你注入了Validator bean吗?
猜你喜欢
  • 1970-01-01
  • 2016-04-30
  • 2021-01-24
  • 1970-01-01
  • 2020-11-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-05
相关资源
最近更新 更多