首页 > Java > java教程 > 如何在 Java 中将 JSON 字符串转换为 HashMap?

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

Patricia Arquette
发布: 2024-11-14 10:42:02
原创
580 人浏览过

How to Convert a JSON String to a HashMap in Java?

使用 Java 将 JSON 字符串转换为 HashMap

在 Java 中,可以使用多种技术来实现解析 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;
}
登录后复制

要使用此方法,请从 JSON 字符串实例化 JSONObject 对象,然后将其作为参数传递给 jsonToMap 方法。它将递归地解析 JSON 结构并将其转换为 HashMap。

或者,您可以使用 Jackson 库来获得更简洁的解决方案:

import com.fasterxml.jackson.databind.ObjectMapper;

Map<String, Object> mapping = new ObjectMapper().readValue(jsonStr, HashMap.class);
登录后复制

只需将 jsonStr 替换为实际的 JSON字符串。

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

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板