Heim  >  Artikel  >  Java  >  Wie gehe ich mit nicht erkannten Feldern bei der Jackson JSON-Deserialisierung um?

Wie gehe ich mit nicht erkannten Feldern bei der Jackson JSON-Deserialisierung um?

DDD
DDDOriginal
2024-11-16 12:34:02282Durchsuche

How to Handle Unrecognized Fields in Jackson JSON Deserialization?

Jackson und JSON: Fehlerbehandlung mit nicht erkannten Feldern

Das Problem tritt auf, wenn Jackson auf einen nicht erkannten Eigenschafts-„Wrapper“ stößt, den er zuzuordnen versucht zur Wrapper-Klasse. Da das Feld nicht in der Zielklasse definiert ist, schlägt es mit einer „UnrecognizedPropertyException“ fehl.

Lösung

Um dieses Problem zu beheben, nutzen Sie Jacksons JsonIgnoreProperties-Annotation. Diese Annotation kann auf Klassenebene angewendet werden, um anzugeben, dass alle nicht erkannten Eigenschaften ignoriert werden sollen. Standardmäßig werden alle Eigenschaften ignoriert, die nicht explizit im POJO definiert sind.

Ein Beispiel für die Verwendung dieser Annotation:

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;

@JsonIgnoreProperties
class Wrapper { ... }

Diese Annotation stellt sicher, dass alle Eigenschaften im JSON, die nicht entsprechen Definierte Felder in der Wrapper-Klasse werden während der Deserialisierung übersprungen.

Erweitert Option

In Fällen, in denen Sie alle nicht deklarierten Eigenschaften ignorieren möchten, auch solche mit einer in der Zielklasse definierten Getter- und Setter-Methode, können Sie das Flag „ignoreUnknown“ verwenden:

@JsonIgnoreProperties(ignoreUnknown = true)
class Wrapper { ... }

Durch die Angabe von „ignoreUnknown = true“ ignoriert Jackson alle Eigenschaften im JSON, die kein entsprechendes Feld in der Wrapper-Klasse haben, unabhängig von der Existenz eines Getters oder Setters Methoden.

Das obige ist der detaillierte Inhalt vonWie gehe ich mit nicht erkannten Feldern bei der Jackson JSON-Deserialisierung um?. 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