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

Comment convertir une chaîne JSON en HashMap en Java ?

Patricia Arquette
Libérer: 2024-11-14 10:42:02
original
581 Les gens l'ont consulté

How to Convert a JSON String to a HashMap in 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;
}
Copier après la connexion

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

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!

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