Maison >Java >javaDidacticiel >Comment désérialiser un tableau d'objets dans Jackson en utilisant Java ?

Comment désérialiser un tableau d'objets dans Jackson en utilisant Java ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-21 07:46:13768parcourir

How to Deserialize an Array of Objects in Jackson using Java?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn