Désérialiser un tableau d'objets avec Jackson
La documentation de Jackson revendique la prise en charge de la désérialisation de tableaux d'objets, mais la syntaxe spécifique peut ne pas être claire. Explorons deux approches pour désérialiser un tableau d'objets.
Considérations sur la sérialisation
Considérez l'entrée JSON suivante pour un tableau d'objets :
[{ "id" : "junk", "stuff" : "things" }, { "id" : "spam", "stuff" : "eggs" }]
Approche de désérialisation 1 : comme Array
Instancier un ObjectMapper et utiliser readValue pour désérialiser l'entrée sous forme de tableau du type d'objet cible :
// Instantiate an ObjectMapper ObjectMapper mapper = new ObjectMapper(); // Deserialize JSON into an array of MyClass objects MyClass[] myObjects = mapper.readValue(jsonInput, MyClass[].class);
Approche de désérialisation 2 : en tant que liste
Pour désérialiser l'entrée sous forme de liste, on peut utiliser le nouveau TypeReference ou constructCollectionType :
Option a : Utilisation de 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 : Utilisation de constructCollectionType
// 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);
Avec ceux-ci approches, vous pouvez désérialiser de manière flexible des tableaux d'objets dans les structures de données souhaitées en Java à l'aide de Jackson.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!