„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie kann ich Nullfeldwerte während der Jackson-Serialisierung unterdrücken?

Wie kann ich Nullfeldwerte während der Jackson-Serialisierung unterdrücken?

Veröffentlicht am 21.12.2024
Durchsuche:991

How Can I Suppress Null Field Values During Jackson Serialization?

Umgang mit Nullfeldwerten in der Jackson-Serialisierung

Jackson, eine beliebte Java-Serialisierungsbibliothek, bietet verschiedene Konfigurationsoptionen, um ihr Serialisierungsverhalten anzupassen. Ein häufiges Szenario ist die Unterdrückung der Serialisierung von Feldwerten, die null sind. Dadurch wird sichergestellt, dass nur Nicht-Null-Eigenschaften in der serialisierten Ausgabe enthalten sind.

Konfigurieren von Jackson für die Nullwertunterdrückung

Es gibt zwei Hauptansätze, um Jackson anzuweisen, Nullen zu ignorieren Feldwerte während der Serialisierung.

1. Mit SerializationInclusion:

ObjectMapper mapper = new ObjectMapper();
mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);

Diese globale Konfiguration gilt für alle Felder in allen Klassen, die vom ObjectMapper verarbeitet werden. Dadurch wird sichergestellt, dass jedes Feld mit einem Nullwert in der serialisierten Ausgabe weggelassen wird.

2. Verwenden der @JsonInclude-Annotation:

@JsonInclude(Include.NON_NULL)
public class SomeClass {
    private String someValue;
}

Durch Anwenden der @JsonInclude-Annotation auf eine Klasse oder Getter-Methode können Sie das Serialisierungsverhalten für bestimmte Eigenschaften oder Unterklassen angeben. Durch Festlegen von Include.NON_NULL wird angegeben, dass nur Nicht-Null-Werte für dieses Feld serialisiert werden sollen.

Alternative Ansätze

Alternativ können Sie die Annotation @JsonInclude verwenden in der Getter-Methode für eine bestimmte Eigenschaft, um die Eigenschaft nur dann bedingt zu serialisieren, wenn ihr Wert nicht vorhanden ist null.

@JsonInclude(value = JsonInclude.Include.NON_NULL, condition = JsonInclude.Include.Condition.NON_NULL)
public String getSomeValue() {
    return someValue;
}

Zusätzliche Überlegungen

Beachten Sie, dass diese Konfigurationen keinen Einfluss auf den Deserialisierungsprozess haben. Wenn bei der Deserialisierung ein Nullwert auftritt, wird dieser dennoch im entsprechenden Feld festgelegt. Informationen zum Steuern des Deserialisierungsverhaltens finden Sie in der Jackson-Dokumentation für @JsonIgnoreProperties und @JsonIgnore.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3