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.
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