Heim >Java >javaLernprogramm >Wie deserialisiere ich JSON mit Jackson in eine generische Klasse?

Wie deserialisiere ich JSON mit Jackson in eine generische Klasse?

DDD
DDDOriginal
2024-11-20 11:41:19625Durchsuche

How to Deserialize JSON into a Generic Class with Jackson?

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 angeben.

Antwort: Jackson stellt eine TypeReference-Klasse zur Verfügung, um generische Typen während der Deserialisierung zu verarbeiten. Um es zu verwenden:

  1. Erstellen Sie ein TypeReference-Objekt für die generische Klasse. In diesem Beispiel ist die Typreferenz für Data wäre:

    new TypeReference<Data<String>>() {}
  2. Ü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!

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