java将 json数组转map

例[{"key":"1"},{"key":"2"}]转换成一个map,map还是[{"key":"1"},{"key":"2"}]这个样子... 例[{"key":"1"},{"key":"2"}]转换成一个map,map还是[{"key":"1"},{"key":"2"}]这个样子 展开
 我来答
ifeilong
2016-09-19 · TA获得超过8068个赞
知道大有可为答主
回答量:1187
采纳率:100%
帮助的人:812万
展开全部

首先你的 [{"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 会覆盖的....

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式