首页  >  文章  >  Java  >  如何在 Java 中将 JSON 字符串转换为 HashMap?

如何在 Java 中将 JSON 字符串转换为 HashMap?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-11-11 22:45:03174浏览

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

在 Java 中将 JSON 字符串转换为 HashMap

在 Java 中,您可能会遇到需要以结构化且可访问的数据格式存储 JSON 数据的场景。一个方便的选择是使用 HashMap,它允许您将键映射到相应的值。

要将 JSON 字符串转换为 HashMap,您可以利用 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;
}

在此代码中,jsonToMap 方法初始化一个名为 retMap 的 HashMap,并检查输入 JSONObject 是否不为 null。如果不为 null,则调用递归 toMap 方法将 JSONObject 转换为 HashMap。

toMap 方法会迭代 JSONObject 中的键并提取相应的值。它递归地处理嵌套的 JSON 对象和数组,有效地将整个 JSON 结构转换为 HashMap。

或者,如果您更喜欢非递归方法并使用 Jackson 库,则可以使用以下代码:

import com.fasterxml.jackson.databind.ObjectMapper;

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

这种方法利用 Jackson 库的 ObjectMapper 类简化了转换过程,该类可以直接将 JSON 字符串解析为所需的值Java 对象。

通过实现这些技术,您可以有效地将 JSON 字符串转换为 Java 中的 HashMap,为您提供灵活高效的数据结构来存储和管理 JSON 数据。

以上是如何在 Java 中将 JSON 字符串转换为 HashMap?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn