Map和JSON的互相轉換


JSON-Lib方式

 

/**
  * 函數注釋:parseJSON2Map()<br>
  * 用途:該方法用於json數據轉換為<Map<String, Object>
  * @param jsonStr
  * @return
  */
public static Map<String, Object> parseJSON2Map(String jsonStr){  
    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.put(k.toString(), v);  
        }  
    }  
    return map;  
}  
/**
  * 函數注釋:parseJSON2MapString()<br>
  * 用途:該方法用於json數據轉換為<Map<String, String><br>
  */
public static Map<String, String> parseJSON2MapString(String jsonStr){  
    Map<String, String> map = new HashMap<String, String>();  
    //最外層解析  
    JSONObject json = JSONObject.fromObject(jsonStr);  
    for(Object k : json.keySet()){ 
        Object v = json.get(k);   
        if(null!=v){
            map.put(k.toString(), v.toString());  
        }
    }  
    return map;  
}
 

Jackson方式

/**
 * Map轉換JSON
 * @param map
 * @return
 * @throws Exception
 */
public static String mapConvert2JSON(Map map) throws Exception{
    ObjectMapper mapper new ObjectMapper();
    return mapper.writeValueAsString(map);
}

/**
 * JSON 轉換 Map
 * @param json
 */
public static Map readJson2Map(String json) throws Exception{
    ObjectMapper objectMapper new ObjectMapper();
    Map<String, Map<String, Object>> maps = objectMapper.readValue(json, Map.class);
    /*Set<String> key = maps.keySet();
    Iterator<String> iter = key.iterator();
    while (iter.hasNext()) {
        String field = iter.next();
        System.out.println(field + ":" + maps.get(field));
    }*/
    return maps;
}


 

 

本段代碼來自 http://www.ibloger.net/article/2470.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM