杰克逊在序列化时忽略@Size

时间:2018-02-28 15:56:14

标签: java jackson

我遇到的情况是,如果验证失败并且有相应的错误消息,我想向用户返回请求。我遇到的问题是我使用Jackson处理JSON请求,验证失败也导致Jackson无法序列化邮件。

例如,如果我有这个对象:

 public class SomeRequest
 {
     @Size(min=1, max=10)
     private String someField;
     //getter and setter here
 }

...当我在字段无效时进行序列化时(让我们说它有11个字符)...

 ObjectMapper mapper = new ObjectMapper();
 output = mapper.writeValueAsString(someRequestInstance);

...我得到一个JsonProcessingException(Error(s)验证对象)。我已经确认有效对象没有序列化问题。 所以我的问题是这个:如何让杰克逊在序列化时忽略javax.validation注释?

提前致谢!

1 个答案:

答案 0 :(得分:0)

默认情况下,Jackson不会在JSON序列化上调用bean验证(javax.validation.constraints)。要么覆盖/自定义默认行为,要么执行任何类型的拦截器/挂钩。

研究堆栈跟踪,以找出确切发生异常的位置并深入研究。