2014-09-20 92 views
13

我想知道爲什麼沒有確定的方式與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工作。謝謝

+0

其他人指出,你有一些版本混合:'org.codehaus.jackson'用於Jackson 1.x,'com.fasterxml.jackson'用於2.x.還有其他的東西取決於Jackson 1.x(可能是1.9,Hadoop,DropWizard或Jersey可能?) – StaxMan 2014-09-24 21:08:02

+0

沒有問題解決。我應該添加'jackson-annotation'庫。謝謝。 – 2014-09-24 21:12:57

+0

好,很高興它解決了! – StaxMan 2014-09-24 21:16:44

回答

14

使用這些依賴 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); 
    }  
} 

嘗試,讓我知道,如果它的工作原理。

+2

它在我添加jackson-annotations後才起作用。謝謝 – 2014-09-20 19:10:45

+1

謝謝,我剛剛添加傑克遜數據綁定爲maven依賴和我的項目的作品。乾杯 – netto 2016-09-30 00:59:22

+1

感謝加入傑克遜依賴關係後爲我工作 – 2017-06-14 06:01:31

2

看起來像混合引用。

您使用的可能是使用舊版本的傑克遜本身的(即org.codehaus包)庫...

我通常只是基於Maven參考傑克遜。

喜歡的東西:

<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>