Aby rozwinąć inne odpowiedzi - jeśli chcesz kontrolować pomijanie wartości pustych dla poszczególnych pól, dodaj adnotację do danego pola (lub alternatywnie adnotację „getter” pola).
przykład - tutaj fieldOne
zostanie odrzucony z json tylko, jeśli jest pusty. fieldTwo
zawsze będzie uwzględniony, niezależnie od tego, czy jest pusty.
public class Foo {
@JsonInclude(JsonInclude.Include.NON_NULL)
private String fieldOne;
private String fieldTwo;
}
Aby domyślnie pominąć wszystkie wartości null w klasie, należy opisać klasę. W razie potrzeby można nadal używać adnotacji dla pól / getterów.
przykład - tutaj fieldOne
i fieldTwo
zostaną odrzucone z json, jeśli są odpowiednio null, ponieważ jest to ustawienie domyślne ustawione przez adnotację klasy. fieldThree
zastąpi to ustawienie domyślne i zawsze zostanie uwzględnione, z uwagi na adnotację w polu.
@JsonInclude(JsonInclude.Include.NON_NULL)
public class Foo {
private String fieldOne;
private String fieldTwo;
@JsonInclude(JsonInclude.Include.ALWAYS)
private String fieldThree;
}
AKTUALIZACJA
Powyższe dotyczy Jackson 2 . W przypadku wcześniejszych wersji Jacksona musisz użyć:
@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)
zamiast
@JsonInclude(JsonInclude.Include.NON_NULL)
Jeśli ta aktualizacja jest przydatna, proszę głosować za odpowiedzią ZiglioUK poniżej, wskazywała ona na nowszą adnotację Jackson 2 na długo przed zaktualizowaniem mojej odpowiedzi, aby z niej skorzystać!
@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)
:; jakoś twoja adnotacja nie była dostępna.