Heim  >  Artikel  >  Java  >  Wie kann ich einen JSON-String in eine HashMap in Java konvertieren?

Wie kann ich einen JSON-String in eine HashMap in Java konvertieren?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-11 22:45:03135Durchsuche

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

Konvertieren eines JSON-Strings in eine HashMap in Java

In Java können Sie auf Szenarien stoßen, in denen Sie JSON-Daten in einem strukturierten und zugänglichen Datenformat speichern müssen. Eine praktische Option hierfür ist die Verwendung einer HashMap, mit der Sie Schlüssel den entsprechenden Werten zuordnen können.

Um einen JSON-String in eine HashMap zu konvertieren, können Sie die Bibliothek org.json nutzen. Hier ist ein Beispielcodeausschnitt, der den Prozess rekursiv demonstriert:

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

In diesem Code initialisiert die jsonToMap-Methode eine HashMap namens retMap und prüft, ob das eingegebene JSONObject nicht null ist. Wenn es nicht null ist, ruft es die rekursive toMap-Methode auf, um das JSONObject in eine HashMap zu konvertieren.

Die toMap-Methode iteriert über die Schlüssel im JSONObject und extrahiert die entsprechenden Werte. Es verarbeitet verschachtelte JSON-Objekte und -Arrays rekursiv und wandelt die gesamte JSON-Struktur effektiv in eine HashMap um.

Wenn Sie alternativ einen nicht rekursiven Ansatz bevorzugen und mit der Jackson-Bibliothek arbeiten, können Sie den folgenden Code verwenden:

import com.fasterxml.jackson.databind.ObjectMapper;

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

Dieser Ansatz vereinfacht den Konvertierungsprozess durch die Verwendung der ObjectMapper-Klasse der Jackson-Bibliothek, die JSON direkt analysieren kann Strings in gewünschte Java-Objekte.

Durch die Implementierung dieser Techniken können Sie JSON-Strings effektiv in HashMaps in Java konvertieren und erhalten so eine flexible und effiziente Datenstruktur zum Speichern und Verwalten von JSON-Daten.

Das obige ist der detaillierte Inhalt vonWie kann ich einen JSON-String in eine HashMap in Java konvertieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn