2
respostas

Inibir null

Teria como inibir um campo que retorna null? Ja vi algumas APIs fazendo isso mas n entendi como faz

2 respostas

Oi Patrick! Tudo certo?

Não sei se estamos falando da mesma coisa hehehe, mas tem uma biblioteca chamada Bean Validation, que cuida das validações de campos que não podem ser nulos ou brancos, por exemplo. Esse conteúdo foi abordado no curso 1, na aula Validação com Bean Validation.

É isso mesmo que você está citando, ou está falando de outra coisa? Caso eu esteja enganada, peço que me dê um exemplo pra eu entender direitinho :)

Espero ter ajudado! Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Olá Patrick, tudo bem?

Uma das formas de inibir um campo que retorna null é utilizando a anotação @JsonInclude do Jackson, que é a biblioteca padrão utilizada pelo Spring Boot para serializar e desserializar objetos Java em JSON.

Por exemplo, digamos que você tenha uma classe Cliente que tem um atributo endereco que pode ser nulo em alguns casos. Para inibir a serialização desse atributo caso ele seja nulo, você pode usar a anotação @JsonInclude na classe Cliente da seguinte forma:

import com.fasterxml.jackson.annotation.JsonInclude;

public class Cliente {

    private String nome;
    private String endereco;

    // construtor, getters e setters

    @JsonInclude(JsonInclude.Include.NON_NULL)
    public String getEndereco() {
        return endereco;
    }
}

Com isso, quando a API serializar um objeto Cliente em JSON e o atributo endereco for nulo, ele não será incluído na resposta. A anotação @JsonInclude pode ser usada com outros valores além de NON_NULL, como NON_DEFAULT, NON_EMPTY e NON_ABSENT, dependendo do comportamento desejado.

É importante notar que, caso você queira que o campo seja incluído, mas com um valor padrão, você pode usar a anotação @JsonProperty em conjunto com a anotação @JsonInclude para definir um valor padrão para o campo caso ele seja nulo:

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;

public class Cliente {

    private String nome;

    @JsonProperty("endereco")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private String endereco = "Endereço não fornecido";

    // construtor, getters e setters
}

Da forma acima, caso o atributo endereco seja nulo, o valor padrão "Endereço não fornecido" será incluído na resposta JSON.