首頁 >Java >java教程 >如何使用 org.json 函式庫將 JSON 字串轉換為 Java 中的 HashMap?

如何使用 org.json 函式庫將 JSON 字串轉換為 Java 中的 HashMap?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-13 14:03:02898瀏覽

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

使用org.json 庫將JSON 字串轉換為Java 中的HashMap

在Java 中處理JSON 資料時,一個常見的任務是將JSON 字串轉換為HashMap,以方便資料操作和儲存。本文詳細說明如何使用 org.json 函式庫實現此轉換。

JSON 結構

考慮以下 JSON 字串:

{
"name" : "abc",
"email id" : ["[email protected]", "[email protected]", "[email protected]"]
}

目標是將此 JSON 字串轉換為HashMap,其中鍵與屬性名稱和各自對應的值相符

HashMap初始化

先初始化一個HashMap來儲存轉換後的資料:

Map<String, Object> retMap = new HashMap<String, Object>();

遞歸轉換

轉換過程涉及遞歸遍歷JSON物件以及轉換巢狀結構。下面的程式碼片段概述了遞歸轉換方法:

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

這段程式碼遞歸遍歷JSON對象並處理嵌​​套結構,例如數組和對象,確保最終的HashMap包含JSON字串中的所有資料.

使用Jackson庫

或者,您可以利用Jackson 庫將JSON字串轉換為 HashMap。這可以透過以下程式碼來完成:

import com.fasterxml.jackson.databind.ObjectMapper;

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

以上是如何使用 org.json 函式庫將 JSON 字串轉換為 Java 中的 HashMap?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn