Maison >Java >javaDidacticiel >Comment puis-je convertir une chaîne JSON en HashMap en Java ?

Comment puis-je convertir une chaîne JSON en HashMap en Java ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-11 22:45:03186parcourir

How can I convert a JSON String to a HashMap in Java?

Conversion d'une chaîne JSON en HashMap en Java

En Java, vous pouvez rencontrer des scénarios dans lesquels vous devez stocker des données JSON dans un format de données structuré et accessible. Une option pratique pour cela consiste à utiliser un HashMap, qui vous permet de mapper les clés avec leurs valeurs correspondantes.

Pour convertir une chaîne JSON en HashMap, vous pouvez exploiter la bibliothèque org.json. Voici un exemple d'extrait de code qui illustre le processus de manière récursive :

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;
}

Dans ce code, la méthode jsonToMap initialise un HashMap appelé retMap et vérifie si l'entrée JSONObject n'est pas nulle. S'il n'est pas nul, il appelle la méthode récursive toMap pour convertir le JSONObject en HashMap.

La méthode toMap parcourt les clés du JSONObject et extrait les valeurs correspondantes. Il gère de manière récursive les objets et les tableaux JSON imbriqués, convertissant efficacement l'intégralité de la structure JSON en HashMap.

Alternativement, si vous préférez une approche non récursive et travaillez avec la bibliothèque Jackson, vous pouvez utiliser le code suivant :

import com.fasterxml.jackson.databind.ObjectMapper;

Map<String, Object> mapping = new ObjectMapper().readValue(jsonStr, HashMap.class);

Cette approche simplifie le processus de conversion en utilisant la classe ObjectMapper de la bibliothèque Jackson, qui peut analyser directement les chaînes JSON dans objets Java souhaités.

En implémentant ces techniques, vous pouvez convertir efficacement les chaînes JSON en HashMaps en Java, vous offrant ainsi une structure de données flexible et efficace pour stocker et gérer les données JSON.

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