java将 json数组转map

例[{"key":"1"},{"key":"2"}]转换成一个map,map还是[{"key":"1"},{"key":"2"}]这个样子

首先你的 [{"key":"1"},{"key":"2"}] 是个 json 数组格式


如果是简单的json 格式, 比如 "{\"key1\":\"1\",\"key2\":\"2\"}"


那么你可以使用 下面的示例:


  public static void main(String[] args){
        String jsonString = "{\"key1\":\"1\",\"key2\":\"2\"}";
        //String str = "[{\"key1\":\"1\"},{\"key2\":\"2\"}]";
        Map<String, Object> map = toMap(jsonString);
        for (Map.Entry<String, Object> entry : map.entrySet()){
            String key = entry.getKey();
            Object value = entry.getValue();
            System.out.println(key + ":" + value);
        }
    }
    @SuppressWarnings("unchecked")
    public static <T> Map<String, T> toMap(String json){
        Map<String, T> map = new HashMap<String, T>();
        JSONObject jsonObject = JSONObject.fromObject(json, new JsonConfig());
        Iterator<String> keys = jsonObject.keys();
        while (keys.hasNext()){
            String key = keys.next();
            Object value = jsonObject.get(key);
            map.put(key, (T) value);
        }
        return map;
    }


执行结果:




你这种数组格式, 转成 map 那么 同名的key 会覆盖的....

温馨提示:答案为网友推荐,仅供参考
相似回答