Heim >Java >javaLernprogramm >Wie konvertiere ich einen JSON-String in eine HashMap in Java?
JSON-String in eine HashMap mit Java konvertieren
In Java kann das Parsen von JSON-Daten und das Speichern in einer HashMap mithilfe verschiedener Techniken erreicht werden . So können Sie dies mit der Bibliothek org.json tun:
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; }
Um diese Methode zu verwenden, instanziieren Sie ein JSONObject-Objekt aus Ihrem JSON-String und übergeben es dann als Argument an die jsonToMap-Methode. Die JSON-Struktur wird rekursiv analysiert und in eine HashMap konvertiert.
Alternativ können Sie die Jackson-Bibliothek für eine präzisere Lösung verwenden:
import com.fasterxml.jackson.databind.ObjectMapper; Map<String, Object> mapping = new ObjectMapper().readValue(jsonStr, HashMap.class);
Ersetzen Sie einfach jsonStr durch Ihr tatsächliches JSON Zeichenfolge.
Das obige ist der detaillierte Inhalt vonWie konvertiere ich einen JSON-String in eine HashMap in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!