Jackson mit JSON: Nicht erkannte Feldauflösung
Beim Versuch, eine JSON-Zeichenfolge mit Jackson in ein Java-Objekt zu konvertieren, wird ein „Unerkanntes Feld“ angezeigt. Es kann zu Fehlern kommen. Dies tritt auf, wenn ein Feld im JSON vorhanden ist, aber nicht in der entsprechenden Java-Klasse.
Im bereitgestellten Beispiel enthält die JSON-Eingabe ein „Wrapper“-Feld, das sowohl in der Student-Klasse als auch in der Wrapper-Klasse fehlt . Um dieses Problem zu lösen, können Sie Jacksons Annotation auf Klassenebene verwenden: @JsonIgnoreProperties.
@JsonIgnoreProperties-Annotation
Mit der @JsonIgnoreProperties-Annotation können Sie angeben, welche Eigenschaften in der JSON sollte ignoriert werden. Dies ist besonders nützlich, wenn Sie nur eine Teilmenge der JSON-Eigenschaften benötigen und die Erstellung einer großen Zuordnung vermeiden möchten.
Verwendung
Um das „Wrapper“-Feld zu ignorieren In Ihrem JSON können Sie die Annotation @JsonIgnoreProperties zu Ihrer Wrapper-Klasse hinzufügen:
import com.fasterxml.jackson.annotation.JsonIgnoreProperties; @JsonIgnoreProperties(ignoreUnknown = true) public class Wrapper { ... }
Durch die Verwendung von „ignoreUnknown = true“ weisen Sie Jackson an, alle unbekannten Eigenschaften zu ignorieren, auf die es im JSON stößt.
Alternative Ansätze
Alternativ können Sie explizit einen Getter und einen Setter für das Feld „wrapper“ in Ihrer Wrapper-Klasse deklarieren, auch wenn Sie diese nicht verwenden möchten. Dadurch wird Jackson auf das Feld aufmerksam gemacht und der Fehler „Unerkanntes Feld“ verhindert.
Es ist auch möglich, die Annotation @JacksonXmlRootElement zu verwenden, um das Stammelement des JSON anzugeben, dies ist jedoch möglicherweise nicht die beste Lösung alle Szenarien.
Das obige ist der detaillierte Inhalt vonWie gehe ich mit „Unrecognized Field“-Fehlern um, wenn Jackson mit JSON verwendet wird?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!