Heim >Java >javaLernprogramm >Wie kann Jackson neue Felder in JSON-Objekten während der Deserialisierung ignorieren?

Wie kann Jackson neue Felder in JSON-Objekten während der Deserialisierung ignorieren?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-28 08:29:11756Durchsuche

How Can Jackson Ignore New Fields in JSON Objects During Deserialization?

Neue Felder in JSON-Objekten mit Jackson 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.

Das Problem

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.

Die Lösung: @JsonIgnoreProperties

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
}

Erklärung importieren

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn