"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como posso suprimir valores de campos nulos durante a serialização de Jackson?

Como posso suprimir valores de campos nulos durante a serialização de Jackson?

Publicado em 2024-12-21
Navegar:604

How Can I Suppress Null Field Values During Jackson Serialization?

Tratamento de valores de campos nulos na serialização Jackson

Jackson, uma biblioteca de serialização Java popular, fornece várias opções de configuração para personalizar seu comportamento de serialização. Um cenário comum é suprimir a serialização de valores de campo nulos. Isso garante que apenas propriedades não nulas sejam incluídas na saída serializada.

Configurando Jackson para supressão de valor nulo

Existem duas abordagens principais para instruir Jackson a ignorar nulo valores de campo durante a serialização.

1. Usando SerializationInclusão:

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

Essa configuração global se aplica a todos os campos em todas as classes que são processadas pelo ObjectMapper. Ele garante que qualquer campo com valor nulo será omitido da saída serializada.

2. Usando a anotação @JsonInclude:

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

Aplicar a anotação @JsonInclude a uma classe ou método getter permite especificar o comportamento de serialização para propriedades ou subclasses específicas. Ao definir Include.NON_NULL, indica que apenas valores não nulos para esse campo devem ser serializados.

Abordagens alternativas

Como alternativa, você pode usar a anotação @JsonInclude no método getter de uma propriedade específica para serializar condicionalmente a propriedade somente quando seu valor não for null.

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

Considerações adicionais

Observe que essas configurações não afetam o processo de desserialização. Se um valor nulo for encontrado durante a desserialização, ele ainda será definido no campo correspondente. Para controlar o comportamento de desserialização, consulte a documentação do Jackson para @JsonIgnoreProperties e @JsonIgnore.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3