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