2014-02-18 120 views
1

我正在使用Jackson Jars(核心2.3.1,註釋2.2.3,數據綁定2.3.1,所有最新的下載頁面)來讀取Json文件,抓住我需要將它放入一個新的對象中,並將該對象寫入/打印輸出到文件或屏幕。Jackson JSON映射「NoClassDefFoundError:JsonPropertyDescription」

我所見到的大多數例子說,這是那麼容易,因爲

ObjectMapper mapper = new ObjectMapper(); 
mapper.writeValueAsString(object); 

或者

ObjectWriter mapper = new ObjectMapper().writer().withDefaultPrettyPrinter(); 
writer.writeValueAsString(object); 

雖然我有必要的JAR的我不斷收到錯誤 的ClassNotFoundException:com.fasterxml。 jackson.annotation.JsonPropertyDescription。

在深入挖掘之後,我發現在傑克遜的github中的JsonPropertyDescription類是未與註釋2.2.3 jar打包在一起。

因此,它已被棄用,並有一些新的方式,我沒有看到採取一個對象,並將其打印到JSON,或這個類意外地離開了新版本?

+1

等一下,你爲什麼要用-core 2.3.x和-annotations 2.2.x? – fge

+0

對於註釋2.2x是最新版本。我知道它很混亂,因爲這個原因,開啓了一個github問題。我猜註釋jar是爲了更加靜態,所以不會像往常一樣升級 –

+0

你可以用-core 2.2.x試試看看它是否有效? – fge

回答

0

不知道,如果你已經通過更新您的罐子,但這裏已經解決了這個去了一些答案:

Upon digging deeper I find that the JsonPropertyDescription class that is in the github for jackson, is not packaged with the annotations 2.2.3 jar.

這是一個new feature in 2.3

Is there some new way I haven't seen to take an object and print it to json?

我不這麼認爲:writeValueAsString() 2.3.3(它不被棄用)。

它看起來像有人有一個similar problem和他們建議的解決方案基本上是「更新你的罐子」。提問者沒有回覆,所以我們不知道這是否奏效。

+0

我們最終放棄了傑克遜,因爲更新罐子必須經歷整個官僚過程的批准。 –

相關問題