java - 普通 Json 字符串到 HashMap

标签 java json hashmap

json 转换为HashMap 时出现了很多问题。 希望对大家有帮助。

以下代码将直接值或值的Array转换为HashMap

最佳答案

//递归调用函数

 private static Map getMap(JSONObject object, String json) throws Exception {
        Map<String, Object> map = new HashMap<String, Object>();
        Object jsonObject = null;

        Iterator<String> keys = object.keys();
        while (keys.hasNext()) {
            String key = keys.next();
            Object value = object.get(key);

            if (value instanceof JSONObject) {
                map.put(key, getMap((JSONObject) value, json));
                continue;
            }

         // If value is in the form of array

            if (value instanceof JSONArray) {
                JSONArray array = ((JSONArray) value);
                List list = new ArrayList();
                for (int i = 0 ; i < array.length() ; i++) {
                    jsonObject = array.get(i);
                    if (jsonObject instanceof JSONObject) {
                        list.add(getMap((JSONObject) jsonObject, json));
                    } else {
                        list.add(jsonObject);

                    }
                }
                map.put(key, list);
                continue;
            }

            map.put(key, value);
        }
        return map;
    }

//调用方法

public static Map<String, Object> convertJsonToMap(String json) {
        Map<String, Object> map = new HashMap<String, Object>();
        JSONObject jsonObject = null;

        try {
            if (null != json) {
                jsonObject = new JSONObject(json);
                map = getMap(jsonObject, json);
            }

        } catch (Exception e) {
            throw new SystemException("Unable to read JSOn Object");
            // TODO : Handle Exception
        }
        return map;
    }

关于java - 普通 Json 字符串到 HashMap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26292155/

相关文章:

java - Spring jdbc模板内存泄漏在非常基本的应用程序中

java - 在无向图中查找所有循环

java - Spring Data JPA 用户帖子

java - 使用 Jersey 默认实现 : MOXy 反序列化多态类型

javascript - send() 是匿名函数吗?

java - 查找 HashMap 中值最低的键

Java HashMap 错误

java - 使用 Java Swing 在选项卡式窗口中显示输出

json - bash JQ。如何从包含对象列表的 json 文件修改键值对?

java - 按标准排序的 5 个项目的分组