Saltar al contenido

Jackson serialización: ignore los valores vacíos (o null)

Este post ha sido evaluado por nuestros expertos para asegurar la veracidad de esta crónica.

Solución:

Tiene la anotación en el lugar equivocado: debe estar en la clase, no en el campo. es decir:

@JsonInclude(Include.NON_NULL) //or Include.NON_EMPTY, if that fits your use case 
public static class Request 
  // ...

Como se indica en los comentarios, en las versiones anteriores a la 2.x, la sintaxis de esta anotación es:

@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL) // or JsonSerialize.Inclusion.NON_EMPTY

La otra opción es configurar el ObjectMapper directamente, simplemente llamando
mapper.setSerializationInclusion(Include.NON_NULL);

(para que conste, creo que la popularidad de esta respuesta es una indicación de que esta anotación deberían ser aplicable campo por campo, @fasterxml)

También puede establecer la opción global:

objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);

También puedes intentar usar

@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)

si está tratando con jackson con una versión inferior a 2+ (1.9.5), lo probé, puede usar fácilmente esta anotación sobre la clase. No para especificado para el attributessolo para decleración de clase.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *