您的位置:首页 > Web前端 > JavaScript

json字符串Map(list<Map>)解析

2018-01-31 09:22 369 查看
网上找了好多方法都是一级的,由于需要多级map,于是做如下封装

public static Map<String, Object> parseJSON2Map(String jsonStr){  
        //最外层解析  
        if(jsonStr!=null&&jsonStr.startsWith("{")&&jsonStr.endsWith("}")){
            Map<String, Object> map = new HashMap<String, Object>();  
            
            JSONObject json = JSONObject.fromObject(jsonStr);  
            for(Object k : json.keySet()){
                
                Object v = json.get(k);   
                //如果内层还是数组的话,继续解析  
                if(v instanceof JSONArray){  
                    List<Map<String, Object>> list = new ArrayList<Map<String,Object>>();  
                    Iterator<JSONObject> it = ((JSONArray)v).iterator();  
                    while(it.hasNext()){  
                        JSONObject json2 = it.next();  
                        list.add(parseJSON2Map(json2.toString()));  
                    }  
                    map.put(k.toString(), list);  
                } else {  
                    Map<String, Object> m = parseJSON2Map(v.toString());
                    if(m==null)
                        map.put(k.toString(), v);
                    else 
                        map.put(k.toString(), m);  
                }  
            }  
            return map;  
        }else{
            return null;
        }
    }  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  json 嵌套