【问题标题】:Cannot work with Jackson不能和杰克逊一起工作
【发布时间】:2014-09-20 09:18:55
【问题描述】:

我想知道为什么没有确定的方式来使用Jackson。我只想解析JSON字符串:

ObjectMapper mapper = new ObjectMapper();
Customer[] myObjects = mapper.readValue(file, Customer[].class);

但我真的很困惑我应该导入什么来做到这一点。根据这个link,我尝试导入mapper-asl.jar。但我得到这个编译错误:

The type org.codehaus.jackson.JsonParser cannot be resolved. It is indirectly referenced from required .class files

然后我尝试导入jackson-core-2.4.2jackson-databind-2.4.2。所以没有编译错误,但我得到了这个运行时异常(在映射器定义行中):

java.lang.NoClassDefFoundError: com.fasterxml.jackson.annotation.JsonAutoDetect

请指导我应该导入什么来使用Jackson。谢谢

【问题讨论】:

  • 正如其他人指出的那样,您有一些版本混淆:org.codehaus.jackson 用于 Jackson 1.x,com.fasterxml.jackson 用于 2.x。而你拥有的其他东西取决于 Jackson 1.x(可能是 1.9、Hadoop、DropWizard 或 Jersey?)
  • 没有问题解决了。只是我应该添加jackson-annotation 库。谢谢。
  • 好的,很高兴解决了!
  • 添加jackson-annotation后,我们需要导入任何类文件吗?

标签: java android json jackson


【解决方案1】:

使用这些依赖项 jackson-databind
jackson-annotations
jackson-core

public class JsonTest {
    public static void main(String[] args) throws JsonProcessingException {
    ObjectMapper mapper=new ObjectMapper();
    Map<String,String> dt=new Hashtable();
    dt.put("1", "welcome");
    dt.put("2", "bye");
    String jsonString = mapper.writeValueAsString(dt)
    System.out.println(jsonString);
    }    
}

【讨论】:

  • 在我添加 jackson-annotations 之后它就起作用了。谢谢
  • 谢谢,我刚刚添加了 jackson-databind 作为 maven 依赖项,我的项目工作正常。干杯
【解决方案2】:

看起来像是混淆了引用。

您可能正在使用使用旧版本 Jackson 本身的库(即 org.codehaus 包)...

我通常只是通过 Maven 引用 Jackson。

类似:

<dependencies>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-annotations</artifactId>
        <version>LATEST</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-core</artifactId>
        <version>LATEST</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>LATEST</version>
    </dependency>
</dependencies>

【讨论】:

    猜你喜欢
    • 2017-01-15
    • 2013-12-12
    • 1970-01-01
    • 1970-01-01
    • 2018-10-19
    • 2016-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多