5

I have a property

@JsonProperty
private Map<String, String> parameters = new HashMap<String, String>();

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.

2 Answers 2

5

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

Sign up to request clarification or add additional context in comments.

Comments

0

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).

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.