Heim >Java >javaLernprogramm >Wie kann Jackson neue Felder in JSON-Objekten während der Deserialisierung ignorieren?
JSON-Objekte unterliegen häufig Änderungen, was zu Fehlern führen kann, wenn eine Bibliothek wie Jackson verwendet wird, um sie in POJO zu konvertieren Klassen. Jackson ist eine beliebte JSON-Verarbeitungsbibliothek, die eine Möglichkeit bietet, neu hinzugefügte Felder in JSON-Objekten zu ignorieren.
Wenn ein JSON-Objekt zusätzliche Felder hat, die in der entsprechenden POJO-Klasse nicht vorhanden sind , wird Jackson das Objekt nicht konvertieren können. Dies kann auch dann auftreten, wenn die neuen Felder optional sind und problemlos ignoriert werden können.
Jackson stellt die Annotation @JsonIgnoreProperties bereit, die auf eine Klasse angewendet werden kann, um unbekannte Eigenschaften zu ignorieren während der Deserialisierung. Bei Verwendung mit „ignoreUnknown = true“ führt diese Annotation dazu, dass Jackson alle Eigenschaften ignoriert, die nicht in der POJO-Klasse vorhanden sind.
Um @JsonIgnoreProperties zu verwenden, fügen Sie einfach die folgende Annotation oben in Ihrer POJO-Klasse hinzu:
@JsonIgnoreProperties(ignoreUnknown = true) public class Foo { // Class fields }
Abhängig von der Version von Jackson, die Sie verwenden, müssen Sie die importieren Richtige Klasse für @JsonIgnoreProperties:
Für Jackson 2.x:
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
Für Jackson 1.x:
import org.codehaus.jackson.annotate.JsonIgnoreProperties;
Durch die Verwendung von @JsonIgnoreProperties können Sie verhindern, dass Jackson abbricht, wenn JSON-Objekte neue Felder enthalten. Diese Annotation bietet eine einfache und effektive Möglichkeit, mit sich entwickelnden JSON-Schemas umzugehen und sicherzustellen, dass Ihr Code auch dann stabil bleibt, wenn sich die JSON-Objekte ändern.
Das obige ist der detaillierte Inhalt vonWie kann Jackson neue Felder in JSON-Objekten während der Deserialisierung ignorieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!