无法解析com.fasterxml.jackson.core.JsonGenerator类型。它是从所需的.class文件间接引用的

时间:2014-08-20 20:27:13

标签: java eclipse jackson

这里我在我的eclipse项目中使用Jackson数据绑定器2.4.1 jar库将对象转换为json格式。这是我的代码:

ObjectMapper mapper = new ObjectMapper();
DataOutputStream wr = new DataOutputStream(conn.getOutputStream());
mapper.writeValue(wr, content);

但是在最后一行mapper.writeValue(wr, content);,它会出错

The type com.fasterxml.jackson.core.JsonGenerator cannot be resolved. It is indirectly referenced from required .class files

我研究过并发现当一个jar文件的类依赖于另一个不可用的类时,会发生这种类型的错误。但是从我使用此代码段的地方来看,没有像这样的问题。但是我通过更改JAR版本失败了很多时间,但没有解决这个问题。我该如何解决这个问题,请帮忙

3 个答案:

答案 0 :(得分:28)

您的类路径上需要jackson-databindjackson-core

答案 1 :(得分:0)

jackson-core 添加到您的类路径以及 jackson-databind 中。

步骤:

  1. here 下载 jackson-core JAR 文件
  2. 右键单击项目并转到属性 > 构建路径 > 库 > 类路径
  3. 选择“添加外部 JAR”
  4. 选择文件位置
  5. 点击“应用并关闭”。

答案 2 :(得分:-1)

使用以下 databind 依赖项尝试使用maven在Eclipse中将 JSON 文件转换为Java POJO 时,遇到了相同的问题。

     <dependency>
      <groupId>com.liferay</groupId>
      <artifactId>com.fasterxml.jackson.databind</artifactId>
      <version>2.10.0.LIFERAY-PATCHED-1</version>
     </dependency>

enter image description here

解决方案: 删除了 databind 依赖项,仅添加了jackson的 core 依赖项。

    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.0.0</version>
    </dependency>