Maison >Java >javaDidacticiel >Comment désérialiser des tableaux d'objets JSON à l'aide de Jackson ?

Comment désérialiser des tableaux d'objets JSON à l'aide de Jackson ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-24 12:27:10964parcourir

How to Deserialize JSON Arrays of Objects using Jackson?

Désérialisation d'un tableau d'objets à l'aide de Jackson

Lorsque l'on traite des données JSON, il est souvent nécessaire d'analyser des tableaux d'objets. Jackson, une bibliothèque Java populaire pour la liaison de données, prend en charge la désérialisation de telles structures.

La documentation de Jackson indique qu'elle peut désérialiser les « tableaux de tous les types pris en charge ». Cependant, la syntaxe spécifique de ce processus peut ne pas être immédiatement apparente. Pour clarifier la désérialisation des tableaux à l'aide de Jackson, explorons le scénario suivant :

Désérialisation d'un seul objet

Considérez l'entrée JSON suivante :

{
    "id" : "junk",
    "stuff" : "things"
}

Pour désérialiser ce JSON en un objet Java nommé MyClass, nous utiliserions ce qui suit code :

//json input
{
    "id" : "junk",
    "stuff" : "things"
}

//Java
MyClass instance = objectMapper.readValue(json, MyClass.class);

Désérialiser un tableau d'objets

Pour un tableau d'objets MyClass, l'entrée JSON ressemblerait à ceci :

[{
    "id" : "junk",
    "stuff" : "things"
},
{
    "id" : "spam",
    "stuff" : "eggs"
}]

Pour désérialiser ce tableau en une liste Java d'objets MyClass, nous avons deux options :

Comme tableau :

MyClass[] myObjects = mapper.readValue(json, MyClass[].class);

Comme liste :

List<MyClass> myObjects = mapper.readValue(jsonInput, new TypeReference<List<MyClass>>() {});

Alternativement, nous pouvons spécifier le Tapez la liste comme :

List<MyClass> myObjects = mapper.readValue(jsonInput, mapper.getTypeFactory().constructCollectionType(List.class, MyClass.class));

En suivant ces méthodes, vous pouvez désérialiser efficacement les tableaux d'objets à l'aide de Jackson et accédez facilement à leur contenu dans votre code Java.

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