java - Jackson:自定义 JSON 反序列化器

标签 java json spring serialization jackson

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

最佳答案

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

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

关于java - Jackson:自定义 JSON 反序列化器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3711154/

相关文章:

java - 如何将多个 jComponent 插入到 jTable 的单元格中

java - 在 couchdb 中执行 where 条件

java - 如何输入在命令行参数中读取的文件名?

javascript - 在不更改不同子路径中的相同 key 对值的情况下,在嵌套的 json 对象中查找和更新

java - Spring 4 不支持 scope 属性吗?

java - 简单的HTTP框架和时间问题

java - spring json 写入的 json 比我想要的多

json - 使用python将csv转为json,json按行排列

java - Spring MVC 项目上的“缺少 Artifact ”和 'Failed to read artifact descriptor' 错误

Spring Session Redis 序列化程序 SerializationException