我有一个属性
@JsonProperty
private Map<String, String> parameters = new HashMap<String, String>();
当我尝试通过调用objectMapper.readValue(...)进行反序列化时,一切正常,直到JSON中的参数字段为空,即
。"parameters":[]
我得到了这个例外......
org.codehaus.jackson.map.JsonMappingException: Can not deserialize instance of java.util.HashMap out of START_ARRAY token
如何处理空列表?不,我对JSON的控制没有任何控制权。
感谢。
答案 0 :(得分:4)
您只能从HashMap
中获得{}
,而不是[]
(尽管如此,您应该可以获得ArrayList
。
答案 1 :(得分:0)
正如克里斯所说,你的JSON是错误的。
但是如果你真的需要支持这个,你可以(并且需要)创建一个自定义反序列化器,并为已声明的Map类型注册 - 自定义反序列化器然后可以接受数组(至少是空数组,如果那些只是种类可以遇到的。)