Maison > Java > javaDidacticiel > le corps du texte

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

Mary-Kate Olsen
Libérer: 2024-11-13 14:03:02
original
848 Les gens l'ont consulté

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]"]
}
Copier après la connexion

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>();
Copier après la connexion

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;
}
Copier après la connexion

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);
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal