有没有一种方法可以根据 java 中的预定义值来验证 json 属性?

Is there a way to validate json attributes based on predefined values in java?

有没有一种方法可以根据 java 中的预定义值验证 json 属性?

例如:

{
    "operation": "ONE" 
}

操作的唯一允许值是一、二、三。 所以在 JSON 层,我们要验证这个操作属性,如果请求的值不是上述任何一个,我们要拒绝它。 是否有任何 JSON 注释可以实现此目的?

使用的库:Fasterxml Jackson

提前致谢。

嗯,可能有两种可能的方法:首先,您可以使用@JsonProperty,但为此您需要添加@JsonCreator 或自定义构造函数。

否则您可以简单地使用 Jackson 模式验证。创建一个 schema.json 并根据模式验证每个传入输入,例如:

{
    "operation": {
                "type":"string",
                "required":true,
                "enum":["ONE","TWO","THREE"]
            }
}

它比处理 Jackson 引发的异常,即 JsonMappingException 和 UnrecognizedPropertyException 更好。

您可以在以下位置查找有关模式验证的更多信息:http://wilddiary.com/validate-json-against-schema-in-java/