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

问题描述 投票:1回答:1

我有一种情况,如果它失败验证以及相应的错误消息,我想向用户返回一个请求。我遇到的问题是我正在使用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注释?

提前致谢!

java jackson
1个回答
0
投票

默认情况下,Jackson不会在JSON序列化上调用bean验证(javax.validation.constraints)。默认行为被覆盖/自定义或者有任何类型的拦截器/钩子这样做。

研究堆栈跟踪以找出确切异常发生的位置并挖掘它。

© www.soinside.com 2019 - 2024. All rights reserved.