2011-02-18 77 views
3

我必須使用jackson將json轉換爲對象。類是這樣的:使用jackson將json轉換爲對象

class Country { 
    int a; 
    int b; 
} 

並且json我得到:

{"country":{"a":1,"b":1}} 

但是,當我試圖反序列化這個它給我下面的錯誤

org.codehaus.jackson.map.JsonMappingException: Unrecognized field "country"  

如果我刪除「國家「,我能夠得到這個對象。

有沒有什麼辦法可以讓傑克遜忽略json字符串中的「country」?

在此先感謝。

+0

將很酷很酷的一些代碼示例爲您找到一個找到「使用傑克遜轉換json到對象」 – 2011-03-24 01:57:55

+0

@castanho轉換json到對象您需要創建一個ObjectMapper對象ObjectMapper objectMapper = new ObjectMapper();然後使用readValue函數轉換爲對象A a =(A)objectMapper.readValue(jsonString,A.class) – parbi 2011-04-26 06:52:22

回答

4

這是Jackson的正確行爲,Country對象的實際json表示應該沒有頂級國家。如果你的JSON絕對有頂級的國家屬性,更清潔的方法是使用包裝國家類是這樣的:

class WrapperCountry { 
    Country country; 
} 

這樣的JSON表示要正確反序列化到WrapperCountry對象,你可以從檢索國家那。

相關問題