Saltar al contenido

como ignorar”null” o propiedades vacías en json, globalmente, usando la configuración de Spring

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.

¡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 *