美文网首页
2019-01-27 常用json 转换方法

2019-01-27 常用json 转换方法

作者: vpike | 来源:发表于2019-01-27 11:29 被阅读0次
public class JsonUtil {

    public static Map<String ,Object> json2Map(String jsonStr){
        if(null==jsonStr || "null".equalsIgnoreCase(jsonStr) || "".equalsIgnoreCase(jsonStr.trim()) || "\"\"".equalsIgnoreCase(jsonStr.trim())){
            return null;
        }
        Map<String,Object> map = new HashMap<String,Object>();// 
        try{
            JSONObject obj = JSONObject.parseObject(jsonStr);
            for (String key:obj.keySet()){
                map.put(key,obj.get(key));
            }
        } catch (Exception e){
            System.out.println("解析JSOON出错, 错误信息:"+e.getMessage());
        }
        if(map.size()>0){
            return map;
        } else {
            return null;
        }
    }
    
    public static List<Map<String,Object>> json2List(String jsonStr){
        if(null==jsonStr || "null".equalsIgnoreCase(jsonStr)){
            return null;
        }
        List<Map<String,Object>> list = new ArrayList<Map<String,Object>>();
        try{
            JSONArray array = JSONArray.parseArray(jsonStr);
            for (int i=0;i<array.size();i++){
                Map<String,Object> map = new HashMap<String,Object>();
                JSONObject object = (JSONObject)array.get(i);
                for (String key:object.keySet()){
                    map.put(key, object.get(key));
                }
                list.add(map);
            }
            return list;
        } catch (Exception e){
            System.out.println("解析JSOON出错, 错误信息:"+e.getMessage());
            return null;
        }
    }
    
    public static LinkedHashMap<String ,Object> json2LinkedHashMap(String jsonStr){
        LinkedHashMap<String,Object> map = new LinkedHashMap<String,Object>();
        try{
            JSONObject obj = JSONObject.parseObject(jsonStr);
            for (String key:obj.keySet()){
                map.put(key,obj.get(key));
            }
        } catch (Exception e){
            System.out.println("解析JSOON出错, 错误信息:"+e.getMessage());
        }
        if(map.size()>0){
            return map;
        } else {
            return null;
        }
    }
    
    public static void main(String[] args){
        //解析对象
        String json = "{id:'sid',name:'sname',userId:'112',element:[{id:'123',name:'haha'},{id:'456',name:'hehe'}]}";
        try{
            JSONObject obj = JSONObject.parseObject(json);
            for (String key:obj.keySet()){
                if(obj.get(key).getClass().isInstance(JSONArray.class)){
                    JSONArray array = (JSONArray)obj.get(key);
                    array.size();
                }
//              if(obj.get(key).size()>0){
//                  JSONObject.parseObject(obj);
//              } else {
//                  System.out.println(key+ "=" + obj.get(key))  ;
//              }
            }
        } catch (Exception e){
            System.out.println("解析JSOON出错, 错误信息:"+e.getMessage());
        }
                 
        //解析数组
        String json2="[{id:'idValue',name:'nameValue',aBean:{aBeanId:'aBeanIdValue'}},{gid:'idValue2', name:'nameValue',aBean:{aBeanId:'aBeanIdValue'}}]";
        try{
            JSONArray array = JSONArray.parseArray(json2);
            for (int i=0;i<array.size();i++){
                JSONObject object = (JSONObject)array.get(i);
                for (String key:object.keySet()){
                    System.out.println(key+ "=" + object.get(key))  ;
                }
            }
        } catch (Exception e){
            System.out.println("解析JSOON出错, 错误信息:"+e.getMessage());
        }
    }
    /**
     * map转JSON
     * @param map
     * @return
     */
    public static String simpleMapToJsonStr(Map<String ,Object > map){  
        if(map==null||map.isEmpty()){  
            return "{}";
        }  
        String jsonStr = "{";  
        Set<?> keySet = map.keySet();  
        for (Object key : keySet) {
            String strValue =map.get(key)==null?"":map.get(key).toString();
            if(strValue!=null){
                if(!strValue.equals("")){
                    if("[".equals( strValue.substring(0, 1)) || "{".equals( strValue.substring(0, 1))){
                        jsonStr +="\""+ key+"\":"+map.get(key)+",";
                    }else{
                        jsonStr +="\""+ key+"\":\""+map.get(key)+"\",";  
                    }
                }else {
                    jsonStr +="\""+ key+"\":\""+"\",";
                }
                
            }
        }
        
        jsonStr = jsonStr.substring(0,jsonStr.length()-1);  
        jsonStr += "}";  
        return jsonStr;
    }
    
    /**
     * map转JSON没有\
     * @param map
     * @return
     */
    public static String simpleMapToJsonStrNoSprit(Map<String ,Object > map){  
        if(map==null||map.isEmpty()){  
            return "{}";
        }  
        String jsonStr = "{";  
        Set<?> keySet = map.keySet();  
        for (Object key : keySet) {
            String strValue =map.get(key)==null?null:map.get(key).toString();
            if(strValue!=null){
                if("[".equals( strValue.substring(0, 1)) || "{".equals( strValue.substring(0, 1))){
                    jsonStr += key+":"+map.get(key)+",";
                }else{
                    jsonStr += key+":\""+map.get(key)+"\",";  
                }
            }
        }
        
        jsonStr = jsonStr.substring(0,jsonStr.length()-1);  
        jsonStr += "}";  
        return jsonStr;
    }
    
    /**
     * list map 转 JSON字符串
     * @param list
     * @return
     */
    public static String getJSONStringFromList(List<Map<String, Object>> list){
        String jsonStr = "[";
        if(list != null && list.size() > 0){
            for(Map<String,Object> map : list){
                jsonStr += simpleMapToJsonStr(map) + ",";
            }
            jsonStr = jsonStr.substring(0, jsonStr.length()-1);
        }
        jsonStr += "]";
        return jsonStr;
    }

相关文章

网友评论

      本文标题:2019-01-27 常用json 转换方法

      本文链接:https://www.haomeiwen.com/subject/imygjqtx.html