El tutorial o código que verás en este post es la solución más sencilla y efectiva que hallamos a esta inquietud o problema.
Solución:
Si está utilizando Spring Boot, esto es tan fácil como:
spring.jackson.serialization-inclusion=non_null
De lo contrario, puede configurar ObjectMapper en MappingJackson2HttpMessageConverter de la siguiente manera:
@Configuration
class WebMvcConfiguration extends WebMvcConfigurationSupport
@Override
protected void extendMessageConverters(List> converters)
for(HttpMessageConverter converter: converters)
if(converter instanceof MappingJackson2HttpMessageConverter)
ObjectMapper mapper = ((MappingJackson2HttpMessageConverter)converter).getObjectMapper()
mapper.setSerializationInclusion(Include.NON_NULL);
Si usa jackson ObjectMapper para generar json, puede definir el siguiente ObjectMapper personalizado para este propósito y usarlo en su lugar:
NON_NULL
La alternativa programática a la respuesta de Abolfazl Hashemi es la siguiente:
/**
* Jackson configuration class.
*/
@Configuration
public class JacksonConfig
@Bean
public ObjectMapper buildObjectMapper()
return new ObjectMapper().setSerializationInclusion(Include.NON_NULL);
De esta manera, básicamente le estás diciendo al contenedor Spring que, cada vez que un ObjectMapper
se utiliza, sólo las propiedades con no-null los valores deben incluirse en las asignaciones.
Otra alternativa, según la documentación de Spring Boot, para Jackson 2+, es configurarlo en el application.properties
:
spring.jackson.default-property-inclusion=non_null
Si estás contento con lo expuesto, tienes la libertad de dejar un ensayo acerca de qué te ha gustado de esta división.