Nur um die anderen Antworten zu erweitern: Wenn Sie das Auslassen von Nullwerten pro Feld steuern müssen, kommentieren Sie das betreffende Feld (oder alternativ den 'Getter' des Felds).
Beispiel - hier fieldOnewird nur von json ausgelassen, wenn es null ist. fieldTwowird immer eingeschlossen, unabhängig davon, ob es null ist.
public class Foo {
@JsonInclude(JsonInclude.Include.NON_NULL)
private String fieldOne;
private String fieldTwo;
}
Kommentieren Sie die Klasse mit Anmerkungen, um standardmäßig alle Nullwerte in der Klasse wegzulassen. Anmerkungen pro Feld / Getter können weiterhin verwendet werden, um diese Standardeinstellung bei Bedarf zu überschreiben.
Beispiel - hier fieldOneund fieldTwowird von json ausgelassen, wenn sie jeweils null sind, da dies der Standard ist, der durch die Klassenanmerkung festgelegt wird. fieldThreeDer Standardwert wird jedoch überschrieben und aufgrund der Anmerkungen im Feld immer berücksichtigt.
@JsonInclude(JsonInclude.Include.NON_NULL)
public class Foo {
private String fieldOne;
private String fieldTwo;
@JsonInclude(JsonInclude.Include.ALWAYS)
private String fieldThree;
}
AKTUALISIEREN
Das obige ist für Jackson 2 . Für frühere Versionen von Jackson müssen Sie Folgendes verwenden:
@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)
anstatt
@JsonInclude(JsonInclude.Include.NON_NULL)
Wenn dieses Update nützlich ist, stimmen Sie bitte der Antwort von ZiglioUK unten zu. Es wurde auf die neuere Anmerkung zu Jackson 2 hingewiesen, lange bevor ich meine Antwort aktualisiert habe, um sie zu verwenden!
@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL); Irgendwie war deine Anmerkung nicht verfügbar.