0

在下面的 json 请求中,您可以看到 3 个级别的学生级别、实习生级别和属性级别的薪水

employee{
id :"123";
name : "ABC";
salary : 100;
college : "abcd..";
Trainees : {
  id :"101";
  name :"XYZ";
  salary :50;
 }
properties :{ // key value pair values
  default.salary= 20
  default.college=null
 }
}  

由于我的申请必须有薪水,所以薪水至少应该有一个级别。

如果薪水字段及其值在所有级别均不可用,则应引发一些错误,并且rest webservice不应处理请求,如果薪水在任何一级可用,则应由rest webservice接受和处理请求。

我目前正在使用javax.validation.constraints进行 json 请求验证,有没有办法实现上述要求?

4

1 回答 1

1

如果您想使用 javax bean 验证,您需要定义一个自定义注释(对于您的特定用例没有默认注释)并使用自定义验证实现 ConstraintValidator。您可以在此处查看示例:https ://www.baeldung.com/javax-validation-method-constraints 。

在这种情况下,3 个工资字段应该可以为空,并且您的验证逻辑应该验证其中至少一个不为空。

于 2020-09-07T15:41:42.337 回答