2013-10-07 25 views
1
ObjectMapper mapper = new ObjectMapper(); 
mapper.configure(JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES, true); 

我從構造下的IntelliJ收到錯誤和編譯器警告,當試圖編譯它說,Jackson Jsonparser不允許我指定字段命名策略?

java: no suitable method found for configure(org.codehaus.jackson.JsonParser.Feature,boolean) method 


(actual argument org.codehaus.jackson.JsonParser.Feature cannot be converted to com.fasterxml.jackson.core.JsonGenerator.Feature by method invocation conversion) 

此方法,它與恰好這些參數的構造函數也出現並且可與智能感知。

任何人都可以想到這個廢話的原因?

感謝您的幫助,我真的無法弄清楚問題所在。

- 亞當

回答

4

如果你看看文檔爲ObjectMapper,你可以清楚地看到,它指定與以下類型簽名配置方法:

configure(JsonParser.Feature f, boolean state)

但是,你似乎是使用兩個不同版本的傑克遜。一個來自codehaus,另一個來自fasterxml,正如錯誤中的第二行所指出的那樣。爲了測試這個或臨時解決這個問題,儘量不要做這樣的:

mapper.configure(com.fasterxml.jackson.core.JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES, true); 

,或者相反,實例化等ObjectMapper:

org.codehaus.jackson.map.ObjectMapper mapper = new org.codehaus.jackson.map.ObjectMapper(); 

編輯:要清楚,做了以上的一個,不是兩個!

+0

爲了在堆棧溢出方面積累的知識的利益,此解決方案工作:) –