Maison >Java >javaDidacticiel >Comment convertir des chaînes JSON en HashMaps en Java à l'aide de la bibliothèque org.json ?

Comment convertir des chaînes JSON en HashMaps en Java à l'aide de la bibliothèque org.json ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-13 14:03:02894parcourir

How to Convert JSON Strings to HashMaps in Java Using the org.json Library?

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 Map 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 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 toList(JSONArray array) throws JSONException {
    List 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;
}

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!

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