有没有办法根据java中的预定义值验证json属性?

时间:2018-02-13 05:05:56

标签: java json jackson fasterxml

有没有办法根据java中的预定义值验证json属性?

代表:

{
    "operation": "ONE" 
}

仅允许的操作值为 ONE,TWO,THREE 。 所以在JSON层,我们要验证这个操作属性,如果请求不是上述任何值,我们要拒绝它。 是否有任何JSON注释来实现这一目标?

使用的图书馆:Fasterxml Jackson

先谢谢。

1 个答案:

答案 0 :(得分:0)

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

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

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

这比处理杰克逊提出的异常,即JsonMappingException和UnrecognizedPropertyException更好。

您可以在http://wilddiary.com/validate-json-against-schema-in-java/

查找有关架构验证的更多信息