我是杰克逊的新手,我正在编写一些练习代码。我发现可以在Fasterxml上找到新版本的Jackson库:Jackson,所以我将以下依赖项添加到我的Maven pom文件中:
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.2.2</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.2.2</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.2.2</version>
</dependency>
我原以为我可以直接使用ObjectMapper
,但是花了很多时间我发现要使用ObjectMapper
我必须添加下面的旧库:
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.2</version>
</dependency>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-core-asl</artifactId>
<version>1.9.2</version>
</dependency>
我有点困惑。有人可以告诉我为什么会这样吗?
答案 0 :(得分:36)
<properties>
<!-- Use the latest version whenever possible. -->
<jackson.version>2.4.4</jackson.version>
</properties>
<dependencies>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${jackson.version}</version>
</dependency>
</dependencies>
你有一个ObjectMapper(来自Jackson Databind包)方便。 如果是这样,你可以这样做:
JsonFactory factory = objectMapper.getFactory();
来源:https://github.com/FasterXML/jackson-core
所以,你已经拥有的3“fastxml”依赖关系对于ObjectMapper来说已经足够了,因为它包含了jackson-databind。
答案 1 :(得分:6)
不,你可以简单地使用com.fasterxml.jackson.databind.ObjectMapper
。
很可能你忘记修复你的import
- 语句,删除对codehaus的所有引用,你就是金。
答案 2 :(得分:2)
答案 3 :(得分:1)
我在这上花了几个小时。
即使我有正确的依赖关系,只有在我删除了C:\ Users \ username.m2下的.m2存储库中的com.fasterxml.jackson文件夹并更新了项目后才能解决问题
答案 4 :(得分:1)
除了修复导入外,请执行新的maven clean compile -U
。请注意-U
选项,它会带来新的依赖关系,有时编辑器很难用。由于未导入的类导致编译失败,但至少您可以选择在maven命令之后导入它们。
刚做Maven-&gt;来自Intellij的Reimport对我不起作用。