有什么方法可以验证 JSON 模式验证器中的数字位数(https://mvnrepository.com/artifact/com.networknt/json-schema-validator)。
我的电话号码最多应有 5 位数字,且小数点后位数不超过 3 位。在我的 DTO 中,这个数字是 BigDecimal。我知道使用“multiplyOf”验证器可以实现小数位数。
也许我应该在 JSON Schema Validator lib 中编写自己的验证器来验证最大数字?如果是的话,该怎么做?
您可以使用
exclusiveMaximum
来验证数字。
{
"type": "number",
"exclusiveMaximum": 100000,
"multipleOf": 0.001
}
给出代码
String schemaData = "{\r\n"
+ " \"type\": \"number\",\r\n"
+ " \"exclusiveMaximum\": 100000,\r\n"
+ " \"multipleOf\": 0.001\r\n"
+ "}";
JsonSchema schema = JsonSchemaFactory.getInstance(VersionFlag.V202012).getSchema(schemaData);
System.out.println(schema.validate("99999.999", InputFormat.JSON));
System.out.println(schema.validate("100000", InputFormat.JSON));
System.out.println(schema.validate("99999.0001", InputFormat.JSON));
输出是
[]
[$: must have an exclusive maximum value of 100000]
[$: must be multiple of 0.001]