"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo puedo suprimir los valores de campos nulos durante la serialización de Jackson?

¿Cómo puedo suprimir los valores de campos nulos durante la serialización de Jackson?

Publicado el 2024-12-21
Navegar:199

How Can I Suppress Null Field Values During Jackson Serialization?

Manejo de valores de campos nulos en la serialización de Jackson

Jackson, una popular biblioteca de serialización de Java, proporciona varias opciones de configuración para adaptar su comportamiento de serialización. Un escenario común es la supresión de la serialización de valores de campo que son nulos. Esto garantiza que solo se incluyan propiedades no nulas en la salida serializada.

Configuración de Jackson para la supresión de valores nulos

Hay dos enfoques principales para indicarle a Jackson que ignore los valores nulos valores de campo durante la serialización.

1. Usando SerializationInclusion:

ObjectMapper mapper = new ObjectMapper();
mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);

Esta configuración global se aplica a todos los campos de todas las clases procesadas por ObjectMapper. Garantiza que cualquier campo con un valor nulo se omitirá de la salida serializada.

2. Usando la anotación @JsonInclude:

@JsonInclude(Include.NON_NULL)
public class SomeClass {
    private String someValue;
}

Aplicar la anotación @JsonInclude a una clase o método getter le permite especificar el comportamiento de serialización para propiedades o subclases específicas. Al configurar Include.NON_NULL, indica que solo se deben serializar los valores no nulos para ese campo.

Enfoques alternativos

Como alternativa, puede usar la anotación @JsonInclude en el método getter para una propiedad particular para serializar condicionalmente la propiedad solo cuando su valor no es nulo.

@JsonInclude(value = JsonInclude.Include.NON_NULL, condition = JsonInclude.Include.Condition.NON_NULL)
public String getSomeValue() {
    return someValue;
}

Consideraciones adicionales

Tenga en cuenta que estas configuraciones no afectan el proceso de deserialización. Si se encuentra un valor nulo durante la deserialización, aún se establecerá en el campo correspondiente. Para controlar el comportamiento de deserialización, consulte la documentación de Jackson para @JsonIgnoreProperties y @JsonIgnore.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3