必要时,我需要从Jackson 1.x升级到2.x.在阅读了发行版的说明之后,我认为只要我做了必要的代码修改就可以升级了:
http://wiki.fasterxml.com/JacksonRelease20
然而,我意识到事后我仍然需要能够对使用1.x版本序列化的数据进行反序列化,以防我们将数据数据预升级回流到服务中,这保证会发生
杰克逊2.x是否适合这个?我知道2.x需要重新编译,但是它仍然可以处理旧的序列化格式吗?
答案 0 :(得分:3)
所以,你的情况是杰克逊2将读取与杰克逊1序列化的数据,这根本不是问题,因为它们都理解JSON格式。
有可能你有基于注释和层次结构的自定义,即使是这种情况,杰克逊1中几乎所有内容都受支持,应该在Jackson 2中支持(这是向后兼容性发挥作用的地方)。
在远程情况下你有一些只能用Jackson 1反序列化的东西,你仍然可以在你的项目中进行滚动升级,杰克逊家伙在这个场景中做了一个了不起的工作,他们将所有的包名改为{{ 1}}来自旧的com.fasterxml.jackson
,这意味着两个版本都可以存在于类路径中,允许您根据优先级升级,或者逐步升级。
我在我提到的3个场景中有经验,因为我们的项目过去常常使用Jackson 1,现在我们将所有这些场景都移到了最新和最好的场景中。
希望这有帮助,
何塞路易斯