【发布时间】:2021-10-29 06:00:49
【问题描述】:
我有一个想要验证的 JSON。
{
"a": {
"attribute1": "",
"attribute2": ""
},
"b": {
"attribute3": "1240717"
},
"c": {
"attribute4": "1321"
},
"d": "Lab",
"c": {
"attribute5": "2021-09-06T20:42:48",
"attribute6": "2021-09-06T20:42:48"
}
}
我想在嵌套的attribute3、attribute4、attribute5 和attribute6 的POJO 类中使用@NotNull 检查NotNull 条件。 我试过这个
public class JsonValidator {
@NonNull
@javax.validation.constraints.NotBlank
@NotEmpty(message = "Bad request")
private String attribute3;
@NonNull
@javax.validation.constraints.NotBlank
@NotEmpty
private String attribute4;
@NonNull
@javax.validation.constraints.NotBlank
@NotEmpty
private String attribute5;
@NonNull
@javax.validation.constraints.NotBlank
@NotEmpty
private String attribute6;
但它只有在属性没有嵌套在另一个对象中并且存在于根对象中时才有效。 谁能告诉我如何实现这一目标
【问题讨论】:
-
对于初学者
@NotBlank已经与@Nonnull @NotEmpty具有相同的含义。你也没有展示你的顶级课程;嵌套属性是否标记为@Valid? -
用
@Valid注释你的复杂对象。然后验证将根据嵌套属性的定义方式触发。 -
感谢您的回复。我会试试的
-
成功了吗?如果不能,您可以添加带有所有相关类的完整模型吗?谢谢!
标签: java spring-boot validation