2011-08-25 19 views
5

que tienen una propiedad¿Cómo deserializar una matriz/lista vacía?

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

Cuando intento deserialise llamando objectMapper.readValue (...) todo funciona bien hasta que el campo parámetros en el JSON está vacía, es decir.

"parameters":[] 

consigo esta excepción ...

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

¿Cómo manejo lista vacía? Y no, no tengo ningún control sobre la entrada de JSON.

Gracias.

Respuesta

4

Sólo se puede obtener una HashMap de {}, no [] (que debería ser capaz de obtener una ArrayList fuera de él sin embargo).

0

Según lo mencionado por Chris, su JSON es incorrecto.

Pero si realmente necesita admitir esto, puede (y necesita) crear un deserializador personalizado, y registrarlo para el tipo de mapa declarado - deserializador personalizado puede aceptar matrices (al menos vacías, si esas son solo tipos que se pueden encontrar).

Cuestiones relacionadas