2

我正在使用 Jackson 库的 ObjectMapper 将 JSON 反序列化为 Java 对象。我正在使用 Spring '接线'。我创建了自定义反序列化器来执行从 JSON 字符串到 POJO 的转换。然而,当输入错误(例如,一个数字作为“124A” - 非法字符传递)时,会调用默认的反序列化器并使用 NumberFormatException 进行轰炸。有没有办法防止调用默认转换器?

4

1 回答 1

2

好的,假设输入不是有效的 JSON(数字不能以'$'开头或包含'$'),将不会调用反序列化器,并且任何更改都必须应用于解析器。Jackson 中没有允许将此类内容视为数字的开关。

如果您可以控制输入,只需将值更改为字符串(在值周围添加双引号)。Parser 然后将其作为 JSON String 传递,数据绑定组件有机会处理它(JsonDeserializer)。

于 2010-09-15T19:44:21.090 回答