正确使用jackson映射器的依赖关系集

我是jackson新手,我正在写一些练习的代码。 我发现新版本的Jackson库可以在Fasterxml: Jackson上find,所以我将下面的依赖添加到了我的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> 

我有点困惑。 有人能告诉我这是为什么吗?

 <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个“fasterxml”依赖关系对于ObjectMapper来说已经足够了,因为它包含了jackson-databind。

不,您可以简单地使用com.fasterxml.jackson.databind.ObjectMapper 。 最有可能的是,你忘记了修改你的import语句,删除所有对codehaus的引用,你是黄金。

Jackson 2.x中的软件包名称已从org.codehaus 2更改为com.fasterxml 1 。 所以如果你只需要ObjectMapper,我想Jackson 1.X可以满足你的需求。

除了确定import,做一个新的maven clean compile -U 。 请注意-U选项,它引入了新的依赖关系,有时编辑器很难处理。 由于未导入的类,编译失败,但至less您可以select在maven命令之后导入它们。

只是从Intellij做Maven-> Reimport不适合我。

我在这花了几个小时。

即使我有正确的依赖关系,只有在我删除了C:\ Users \ username.m2下.m2存储库中的com.fasterxml.jackson文件夹并更新了项目