首頁  >  文章  >  Java  >  如何使用 org.json 和 Jackson 函式庫將 JSON 字串轉換為 Java 中的 HashMap?

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

Susan Sarandon
Susan Sarandon原創
2024-11-12 06:41:01231瀏覽

How do you convert JSON strings to HashMaps in Java using org.json and Jackson libraries?

在Java 中將JSON 字串轉換為HashMap

處理JSON 格式的資料時,將其轉換為HashMap 可能是一種有用的方法儲存和存取資訊。以下是如何使用 org.json 函式庫實現此轉換。

使用 org.json 函式庫

  1. 建立 HashMap 物件來儲存轉換後的資料。
  2. 將 JSON 字串解析為 JSONObject。
  3. 迭代 JSONObject 中的鍵。
  4. 對於每個鍵,從 JSONObject 擷取對應的值。
  5. 如有必要,將值轉換為適當的類型(例如 List、HashMap)。
  6. 將鍵值對加到 HashMap。

遞歸範例

以下程式碼提供了處理巢狀JSON 結構的遞歸實作:

public static Map<String, Object> 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<String, Object> toMap(JSONObject object) throws JSONException {
    Map<String, Object> map = new HashMap<String, Object>();

    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<Object>();
    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;
}

使用🎜>使用函式庫

如果您願意,您可以也可以使用Jackson函式庫進行JSON解析。這種方法更簡潔,需要的步驟更少:

import com.fasterxml.jackson.databind.ObjectMapper;

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

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

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