JSON mit generischen Typen mit Jackson deserialisieren
Frage: So deserialisieren Sie JSON-Daten mit Jackson in eine generische Klasse ?
Betrachten Sie das folgende Beispiel Klasse:
class Data<T> { int found; Class<T> hits }
Ein standardmäßiger JSON-Deserialisierungsversuch mit mapper.readValue(jsonString, Data.class) schlägt fehl. Um die Daten korrekt zu deserialisieren, müssen wir den Typparameter
Antwort: Jackson stellt eine TypeReference-Klasse zur Verfügung, um generische Typen während der Deserialisierung zu verarbeiten. Um es zu verwenden:
Erstellen Sie ein TypeReference-Objekt für die generische Klasse. In diesem Beispiel ist die Typreferenz für Data
new TypeReference<Data<String>>() {}
Übergeben Sie das TypeReference-Objekt an die readValue-Methode:
mapper.readValue(jsonString, new TypeReference<Data<String>>() {});
Dadurch werden die JSON-Daten korrekt deserialisiert eine Instanz von Data
Das obige ist der detaillierte Inhalt vonWie deserialisiere ich JSON mit Jackson in eine generische Klasse?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!