有没有办法根据java中的预定义值验证json属性?
代表:
{
"operation": "ONE"
}
仅允许的操作值为 ONE,TWO,THREE 。 所以在JSON层,我们要验证这个操作属性,如果请求不是上述任何值,我们要拒绝它。 是否有任何JSON注释来实现这一目标?
使用的图书馆:Fasterxml Jackson
先谢谢。
答案 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/
查找有关架构验证的更多信息