Apenas para expandir as outras respostas - se você precisar controlar a omissão de valores nulos em uma base por campo, anote o campo em questão (ou, em alternativa, anote o 'getter' do campo).
exemplo - aqui somente fieldOne
será omitido do json se for nulo. fieldTwo
sempre será incluído, independentemente de ser nulo.
public class Foo {
@JsonInclude(JsonInclude.Include.NON_NULL)
private String fieldOne;
private String fieldTwo;
}
Para omitir todos os valores nulos na classe como padrão, anote a classe. As anotações por campo / obturador ainda podem ser usadas para substituir esse padrão, se necessário.
exemplo - aqui fieldOne
e fieldTwo
será omitido de json se eles forem nulos, respectivamente, porque esse é o padrão definido pela anotação de classe. fieldThree
no entanto, substituirá o padrão e sempre será incluído, devido à anotação no campo.
@JsonInclude(JsonInclude.Include.NON_NULL)
public class Foo {
private String fieldOne;
private String fieldTwo;
@JsonInclude(JsonInclude.Include.ALWAYS)
private String fieldThree;
}
ATUALIZAR
O acima é para Jackson 2 . Para versões anteriores do Jackson, você precisa usar:
@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)
ao invés de
@JsonInclude(JsonInclude.Include.NON_NULL)
Se essa atualização for útil, faça o upvote da resposta do ZiglioUK abaixo, ela apontou a anotação mais recente do Jackson 2 muito antes de eu atualizar minha resposta para usá-la!
@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)
:; de alguma forma, sua anotação não estava disponível.