我们正在运行一个使用 Jackson 进行序列化的 Java 11 应用程序。到目前为止,我们还没有使用过 Jdk8Module。尽管如此,(反)序列化工作正常。Optional.empty()
被序列化为'{ "value": null }'
.
升级到 Java 14 后(反)序列化不再起作用,我们需要激活 Jdk8Module。
问题是:在激活 Jdk8Module 后,Jackson 除了'null'
,Optional.empty()
但我们所有的 JSON 都包含'{ "value": null }'
. 结果是 Jacksons 没有识别出该值是 anOptional.empty()
并将内容传递给以异常结尾的包含类型的特定序列化程序。
我们正在寻找解决此问题的智能解决方案。