[英]Jackson custom filter with full POJO data bind
似乎Json Schema可能符合您的需求。 它允许json字符串的灵活(和复杂)验证规则在反序列化之前。 它包括必填字段,基于正则表达式的值检查,行业标准格式(例如,您可以将字段定义为“电子邮件”格式),跨字段依赖项(在最新的v4中)等
以上是与语言无关的标准。 至于Java实现,我使用了这个支持最新的json模式版本(该标准仍在不断发展)。 验证器的初始集成是很多工作,(因为我非常动态的json模型)但是之后引入新的验证规则非常方便(只需要更改json模式文件)
我建议相应地使用Jackson和Hibernate Vaildator来分离反序列化和验证的问题。 我们的想法是首先将json数据反序列化为POJO,然后根据需求验证POJO。 在这种情况下,您可以应用类级别约束进行验证。 类级别约束具有很大的灵活性,可以通过访问对象实例来验证多个相关属性。 它简单而有力。
通常验证需要更高层次的关注。 在反序列化之后处理这个问题会更好。 这样做可以使代码更容易管理和重用POJO和验证规则。
只是考虑一下:如果你不关心反序列化过程中的验证,请为你的POJO类尝试@JsonIgnoreProperties(ignoreUnknown = true)
注释。 您可以稍后在实际业务逻辑与pojo类一起使用时进行验证。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.