Conversion de chaînes JSON en HashMaps en Java à l'aide de la bibliothèque org.json
Lorsque vous travaillez avec des données JSON en Java, une tâche courante consiste à convertissez les chaînes JSON en HashMaps pour faciliter la manipulation et le stockage des données. Cet article fournit une explication détaillée sur la façon de réaliser cette conversion à l'aide de la bibliothèque org.json.
Structure JSON
Considérez la chaîne JSON suivante :
{ "name" : "abc", "email id" : ["[email protected]", "[email protected]", "[email protected]"] }
Le but est de convertir cette chaîne JSON en un HashMap avec des clés correspondant aux noms de propriétés et aux valeurs correspondant à leurs valeurs respectives. valeurs.
Initialisation du HashMap
Tout d'abord, initialisez un HashMap pour stocker les données converties :
Map<String, Object> retMap = new HashMap<String, Object>();
Conversion récursive
Le processus de conversion implique de parcourir récursivement l'objet JSON et de convertir les structures imbriquées comme Bien. L'extrait de code suivant décrit la méthode de conversion récursive :
public static MapjsonToMap(JSONObject json) throws JSONException { Map<String, Object> retMap = new HashMap<String, Object>(); if(json != JSONObject.NULL) { retMap = toMap(json); } return retMap; } public static Map toMap(JSONObject object) throws JSONException { Map map = new HashMap (); Iterator keysItr = object.keys(); while(keysItr.hasNext()) { String key = keysItr.next(); Object value = object.get(key); if(value instanceof JSONArray) { value = toList((JSONArray) value); } else if(value instanceof JSONObject) { value = toMap((JSONObject) value); } map.put(key, value); } return map; } public static List
Ce code parcourt de manière récursive l'objet JSON et gère les structures imbriquées, telles que les tableaux et les objets, garantissant que le HashMap final contient toutes les données de la chaîne JSON. .
Utiliser le Jackson Bibliothèque
Vous pouvez également utiliser la bibliothèque Jackson pour convertir les chaînes JSON en HashMaps. Cela peut être fait avec le code suivant :
import com.fasterxml.jackson.databind.ObjectMapper; Map<String, Object> mapping = new ObjectMapper().readValue(jsonStr, HashMap.class);
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!