我正在使用 Jackson 库的 ObjectMapper 将 JSON 反序列化为 Java 对象。我正在使用 Spring“接线”。我创建了自定义反序列化器来执行从 JSON 字符串到 POJO 的转换。但是,当输入错误时(例如,一个数字作为“124A”-非法字符传递),将调用默认反序列化器并使用 NumberFormatException 进行轰炸。有没有办法阻止默认转换器被调用?
最佳答案
好的,假设输入不是有效的 JSON(数字不能以“$”开头或包含“$”),反序列化器将不会被调用,任何更改都必须应用于解析器。 Jackson 中没有开关允许将此类内容视为数字。
如果您可以控制输入,只需将值更改为字符串(在值周围添加双引号)。然后解析器将其作为 JSON 字符串传递,数据绑定(bind)组件有机会处理它 (JsonDeserializer)。
关于java - Jackson:自定义 JSON 反序列化器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3711154/