Conversion de chaînes JSON en HashMaps en Java
Lorsque vous travaillez avec des données au format JSON, les convertir en HashMap peut être un moyen utile de stocker et accéder aux informations. Voici comment réaliser cette conversion à l'aide de la bibliothèque org.json.
Utilisation de la bibliothèque org.json
Exemple récursif
Le code suivant fournit une implémentation récursive qui gère les structures JSON imbriquées :
public static Map<String, Object> jsonToMap(JSONObject json) throws JSONException { Map<String, Object> retMap = new HashMap<String, Object>(); if(json != JSONObject.NULL) { retMap = toMap(json); } return retMap; } public static Map<String, Object> toMap(JSONObject object) throws JSONException { Map<String, Object> map = new HashMap<String, Object>(); Iterator<String> 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<Object> toList(JSONArray array) throws JSONException { List<Object> list = new ArrayList<Object>(); for(int i = 0; i < array.length(); i++) { Object value = array.get(i); if(value instanceof JSONArray) { value = toList((JSONArray) value); } else if(value instanceof JSONObject) { value = toMap((JSONObject) value); } list.add(value); } return list; }
Utilisation de la bibliothèque Jackson
Si vous préférez, vous peut également utiliser la bibliothèque Jackson pour l'analyse JSON. Cette approche est plus concise et nécessite moins d'étapes :
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!