json - Jackson 1.x 到 2.x 以及向后兼容的意义

标签 json jackson

必要时,我需要从 Jackson 1.x 升级到 2.x。在阅读了发布说明后,我认为只要进行必要的代码更改就可以升级:

http://wiki.fasterxml.com/JacksonRelease20

但是,事后我意识到,如果我们有升级前的数据流回服务,我仍然需要能够反序列化使用 1.x 版本序列化的数据,这肯定会发生.

Jackson 2.x 是否适合这个?我知道 2.x 需要重新编译,但它仍然可以处理旧的序列化格式吗?

最佳答案

因此,您的情况是使用 Jackson 1 序列化的数据将由 Jackson 2 读取,这应该不是问题,因为两者都理解 JSON 格式。

您可能有基于注释和层次结构的自定义,即使是这种情况,Jackson 1 中几乎所有内容都受支持,Jackson 2 中也应该受支持(这就是向后兼容性发挥作用的地方)。

在远程情况下,你有一些只能用 Jackson 1 反序列化的东西,你仍然可以在你的项目中进行滚动升级,Jackson 的家伙在这种情况下做得非常出色,他们将所有包名称更改为 com.fasterxml.jackson 来自旧的 org.codehaus.jackson,这意味着这两个版本都可以存在于您的类路径中,允许您根据优先级或增量升级内容。

我对我提到的 3 个场景都有经验,因为我们的项目过去使用 Jackson 1,现在我们将它们全部转移到最新最好的。

希望对您有所帮助,

何塞·路易斯

关于json - Jackson 1.x 到 2.x 以及向后兼容的意义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30248832/

相关文章:

javascript - 使由 JSON.parse 创建的对象继承自另一个类

json - EC2 实例类型的 AWS Cloudformation 模板错误

rest - 返回类型为标记接口(interface)时使用 Jackson 进行多态序列化

java - 有没有办法使用 Jackson 的 ObjectMapper 来序列化流?

ios - 来自 JSON 的数据转换结果为 NSDictionary[] 抛出 EXC_BAD_INSTRUCTION 运行时错误

json - 未捕获的语法错误 : Unexpected token u in json

android - 无法在 Spring 3 REST Web 服务中反序列化 START_ARRAY token 中的对象实例

java - Jersey 在序列化期间省略 XmlTransient 注释

java - 如何在java中使用jackson将缺失的属性反序列化为默认值

php - 如何使用json检索数据到mysql android