Java/Jersey/Jackson - 验证输入的JSON

4
我将使用Java/Jersey/Jackson技术栈编写REST API。所有的JSON解析和生成都将由Jackson处理。REST层将由Jersey处理,并嵌入到Grizzly容器中。
在我的API中,我接收端点中的JSON数据,例如:
@POST
public Response post(final SomeObject input) {
    return ...;
}

什么是验证“input”的最佳方法?我想要验证以下内容:
  • “input”不能为空
  • “input”的某些字段不能为空
  • “input”的某些字段必须遵循正则表达式(文本字段)
  • “input”的某些字段必须在范围内(数字字段)
  • ...
如果可能的话,我希望尽可能少地更改我的代码。也就是说,我更喜欢使用注解来集成验证,包括我的类、方法和参数。

1
请看这个链接:https://jersey.java.net/documentation/latest/bean-validation.html - Baderous
JSON验证器可能对您有所帮助。请参见此https://dev59.com/-nE95IYBdhLWcg3wApHl - Rahul
2个回答

4
你可以使用JSON Schema。由于你使用的是Jackson,所以你可以使用我的库,它正是这样做的。然而,这意味着你需要更改你的逻辑,以便你接收JSON(作为JsonNode),然后才将其序列化为你的POJO。

2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接