开发者

How to deserialise empty array/list?

I have a property

@JsonProperty
private Map<String, String> parameters = new HashMap<String, String>开发者_StackOverflow社区;();

When I try to deserialise by calling objectMapper.readValue(...) everything works fine until the parameters field in the JSON is empty, ie.

"parameters":[]

I get this exception...

org.codehaus.jackson.map.JsonMappingException: Can not deserialize instance of java.util.HashMap out of START_ARRAY token

How do I handle empty list? And no I don't have any control over the JSON coming in.

Thanks.


You can only get a HashMap out of {}, not [] (you should be able to get an ArrayList out of it though).


As mentioned by Chris, your JSON is wrong.

But if you really need to support this, you can (and need to) create a custom deserializer, and register that for declared Map type -- custom deserializer can then accept arrays (at least empty ones, if those are only kinds that can be encountered).

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜