Maison >Java >javaDidacticiel >Comment convertir une chaîne JSON en HashMap en Java ?
Conversion d'une chaîne JSON en HashMap avec Java
En Java, l'analyse des données JSON et leur stockage dans un HashMap peuvent être réalisés à l'aide de diverses techniques . Voici comment procéder à l'aide de la bibliothèque org.json :
public static Map<String, Object> jsonToMap(JSONObject json) throws JSONException { Map<String, Object> retMap = new HashMap<>(); 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<>(); 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<>(); 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; }
Pour utiliser cette méthode, instanciez un objet JSONObject à partir de votre chaîne JSON, puis transmettez-le comme argument à la méthode jsonToMap. Il analysera de manière récursive la structure JSON et la convertira en HashMap.
Vous pouvez également utiliser la bibliothèque Jackson pour une solution plus concise :
import com.fasterxml.jackson.databind.ObjectMapper; Map<String, Object> mapping = new ObjectMapper().readValue(jsonStr, HashMap.class);
Remplacez simplement jsonStr par votre JSON actuel Chaîne.
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!