2011-08-25 17 views
5

Mam właściwośćJak deserializować pustą tablicę/listę?

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

Kiedy próbuję deserialise wywołując objectMapper.readValue (...) wszystko działa dobrze, dopóki pole parametry w JSON jest pusty, tzn.

"parameters":[] 

otrzymuję ten wyjątek ...

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

Jak obsługiwać pustą listę? I nie, nie mam żadnej kontroli nad wejściem JSON.

Dzięki.

Odpowiedz

4

można dostać tylko HashMap z {} nie [] (powinny być w stanie uzyskać ArrayList z niego chociaż).

0

Jak wspomniał Chris, Twój JSON jest w błędzie.

Ale jeśli naprawdę potrzebujesz tego wsparcia, możesz (i musisz) utworzyć niestandardowy deserializator i zarejestrować, że dla zadeklarowanego typu mapy - niestandardowy deserializator może następnie akceptować tablice (przynajmniej puste, jeśli są tylko rodzaje, które można napotkać).

Powiązane problemy