【发布时间】:2018-02-28 15:56:14
【问题描述】:
我有一种情况,我想在验证失败时向用户返回请求以及相应的错误消息。我遇到的问题是我使用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(错误验证对象)。我已经确认一个有效的对象没有序列化问题。 所以我的问题是这样的:如何让 Jackson 在序列化时忽略 javax.validation 注释?
提前致谢!
【问题讨论】:
-
您的异常应该指向代码中进行验证的位置。在那里,您应该能够找到指向如何启用或禁用它的东西。到目前为止,我只能找到杰克逊家伙不想在他们的库中实现内置验证的证据,所以你的验证器可能使用了某种钩子。