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 fieldOne
wird nur von json ausgelassen, wenn es null ist. fieldTwo
wird 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 fieldOne
und fieldTwo
wird von json ausgelassen, wenn sie jeweils null sind, da dies der Standard ist, der durch die Klassenanmerkung festgelegt wird. fieldThree
Der 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.