Deserialisieren eines Arrays von Objekten mit Jackson
In der Jackson-Dokumentation wird Unterstützung für das Deserialisieren von Arrays von Objekten beansprucht, die spezifische Syntax ist jedoch möglicherweise unklar. Lassen Sie uns zwei Ansätze zum Deserialisieren eines Arrays von Objekten untersuchen.
Überlegungen zur Serialisierung
Betrachten Sie die folgende JSON-Eingabe für ein Array von Objekten:
[{ "id" : "junk", "stuff" : "things" }, { "id" : "spam", "stuff" : "eggs" }]
Deserialisierungsansatz 1: As Array
Instanziieren Sie einen ObjectMapper und verwenden Sie readValue, um die Eingabe als Array des Zielobjekttyps zu deserialisieren:
// Instantiate an ObjectMapper ObjectMapper mapper = new ObjectMapper(); // Deserialize JSON into an array of MyClass objects MyClass[] myObjects = mapper.readValue(jsonInput, MyClass[].class);
Deserialisierungsansatz 2: Als Liste
Um die Eingabe als Liste zu deserialisieren, kann man new TypeReference oder verwenden constructionCollectionType:
Option a: Verwenden von TypeReference
// Create TypeReference for a list of MyClass objects TypeReference<List<MyClass>> typeRef = new TypeReference<List<MyClass>>() {}; // Deserialize JSON input using the TypeReference List<MyClass> myObjects = mapper.readValue(jsonInput, typeRef);
Option b: Verwenden von constructionCollectionType
// Create a CollectionType for a list of MyClass objects JavaType type = mapper.getTypeFactory().constructCollectionType(List.class, MyClass.class); // Deserialize JSON input using the CollectionType List<MyClass> myObjects = mapper.readValue(jsonInput, type);
Mit diesen Mit diesen Ansätzen können Sie mit Jackson flexibel Arrays von Objekten in gewünschte Datenstrukturen in Java deserialisieren.
Das obige ist der detaillierte Inhalt vonWie deserialisiere ich ein Array von Objekten in Jackson mit Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!