Heim >Java >javaLernprogramm >Wie kann Jackson JSON in generische Klassen deserialisieren?

Wie kann Jackson JSON in generische Klassen deserialisieren?

Susan Sarandon
Susan SarandonOriginal
2024-11-21 07:18:10319Durchsuche

How Can Jackson Deserialize JSON into Generic Classes?

JSON in generische Klassen deserialisieren mit Jackson

Bei der Arbeit mit JSON-Daten kann es vorkommen, dass wir JSON-Strings in Klassen deserialisieren müssen mit generischen Parametern. Die Jackson-Bibliothek bietet eine Möglichkeit, solche Deserialisierungsszenarien effektiv zu handhaben.

Um einen JSON-String in eine generische Klasse zu deserialisieren, müssen wir zunächst die Klasse mit dem generischen Typparameter definieren:

class Data<T> {
    int found;
    Class<T> hits
}

Um JSON nun in eine Instanz von Data zu deserialisieren, können wir die von Jackson bereitgestellte TypeReference-Klasse verwenden. Mit der TypeReference können wir den Typ der generischen Klasse angeben und den JSON entsprechend deserialisieren.

ObjectMapper mapper = new ObjectMapper();
String jsonString = "...";

TypeReference<Data<String>> typeRef = new TypeReference<>() {};
Data<String> data = mapper.readValue(jsonString, typeRef);

In diesem Beispiel erstellen wir eine TypeReference für Data und übergeben Sie es als zweites Argument an readValue. Jackson deserialisiert dann den JSON-String in eine Instanz von Data.

Es ist wichtig zu beachten, dass wir bei Verwendung von TypeReference den spezifischen Typ des generischen Parameters angeben müssen. In diesem Fall haben wir String als Typ für T angegeben.

Durch die Verwendung von TypeReference können wir JSON mit Jackson effektiv in generische Klassen deserialisieren, sodass wir komplexe Datenstrukturen problemlos verarbeiten können.

Das obige ist der detaillierte Inhalt vonWie kann Jackson JSON in generische Klassen deserialisieren?. 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