Maison  >  Article  >  Java  >  Comment convertir une chaîne JSON en carte à l'aide de Jackson JSON ?

Comment convertir une chaîne JSON en carte à l'aide de Jackson JSON ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-30 14:29:02846parcourir

How do I convert a JSON string to a Map using Jackson JSON?

Conversion d'une chaîne JSON en Map Utilisation de Jackson JSON

Pour convertir une chaîne JSON en un Map en utilisant Jackson JSON, on ne peut pas simplement convertir une Map générique en type souhaité, car cela entraînerait une erreur d'affectation non vérifiée.

Au lieu de cela, l'approche correcte consiste à utiliser la classe ObjectMapper. Voici comment :

<code class="java">ObjectMapper mapper = new ObjectMapper();
TypeReference<Map<String, String>> typeRef = 
                new TypeReference<Map<String, String>>() {};

Map<String, String> propertyMap = mapper.readValue(properties, typeRef);</code>

La classe ObjectMapper fournit des méthodes de lecture et d'écriture de données JSON. La méthode readValue() accepte une source d'entrée (par exemple, un fichier, un flux ou une chaîne) et un objet TypeReference qui spécifie le type souhaité de l'objet de sortie.

De plus, Jackson JSON fournit également une manière native de convertir des chaînes JSON en objets Java sans avoir besoin de transtypage :

<code class="java">public void testJackson() throws IOException {  
    ObjectMapper mapper = new ObjectMapper(); 
    File from = new File("albumnList.txt"); 
    TypeReference<HashMap<String,Object>> typeRef 
            = new TypeReference<HashMap<String,Object>>() {};

    HashMap<String,Object> o = mapper.readValue(from, typeRef); 
    System.out.println("Got " + o); 
}  </code>

Cette approche consiste à spécifier le type souhaité à l'aide d'un objet TypeReference, qui peut être créé à l'aide d'une classe interne anonyme. L'ObjectMapper peut alors directement convertir la chaîne JSON au type souhaité.

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