Jackson 2.0与Jackson 1.x注解兼容吗?

6

我有一个旧的框架类,用jackson 1.x进行注释。我的应用程序使用jackson 2.0处理json序列化。是否可以配置jackson 2.0以理解“旧”的注释?目前这些注释被简单地忽略了。

1个回答

6

目前没有现成配置,但很容易实现Jackson 2.0 AnnotationIntrospector(可能需要扩展JacksonAnnotationIntrospector),并让它使用除了2.x注释以外的1.x注释。

实际上,您可以基本上采用1.x JacksonAnnotationIntrospector并替换其用法。

之所以2.0不支持1.x注释是因为它会引入额外的依赖项,可能会导致版本冲突。但这并不妨碍外部库进行此操作-事实上,如果任何人想要贡献,我相信Jackson项目将接受github的“Jackson 1.x注释”模块。


嘿,我遇到了相同类型的错误。我的项目是基于Spring 1.5.10,使用Jackson 2.9,并且我已经用这个版本制作了我的Rest服务层。现在我添加了一个新的依赖kie-server-client,它使用jakson的1.9版本,但是我得到了NoSuchMethod错误:java.lang.NoSuchMethodError: com.fasterxml.jackson.databind.SerializationConfig.with(Lcom/fasterxml/jackson/databind/AnnotationIntrospector;)。这意味着新的依赖项无法与已经存在于类路径中的jakson 1.9一起工作。我该如何使我的项目同时与两者一起工作? - Mubasher
@Mubasher 不,那与1.x / 2.x的区别没有任何关系。这些类存在于不同的包中,因此此错误严格适用于2.x。但是您在2.x次要版本之间存在一些版本不匹配:某些组件比其他组件旧,并且缺少稍后次要版本中添加的方法。 - StaxMan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接