0
的系列化我有以下類:- 傑克遜地圖<字符串,對象>實施
public class Some implements Map<String, Object>{
private Map<String, Object> innerMap;
//implementation that can only set innerMap in constructor and cannot add or remove values
}
的問題是,我不能在傑克遜正確反序列化這一點。如果我序列無默認輸入,這是確定的,因爲它被序列化爲{「一」:「二」},正確地反序列化(我不得不實施解串器
return new Some(jp.readValueAs(new TypeReference<HashMap<String,Object>>(){}));
當我使用默認的打字開啓,這個序列化爲
["com.class.Some",{"one":"two"}]
但反序列化拋出
com.fasterxml.jackson.databind.JsonMappingException: Unexpected token (START_OBJECT), expected START_ARRAY: need JSON Array to contain As.WRAPPER_ARRAY type information for class java.util.HashMap
有什麼想法?
我這裏的問題是,有些實現了Map接口,並具有@Override 公共對象認沽(字符串鍵,對象值){ throw new UnsupportedOperationException(「Is Immutable」); }所以你的代碼我得到這個異常。 – bojanv55
示例中的映射是不可變的,並且在調用'put'時拋出'UnsupportedOperationException'。 – teppic