import net.sf.json.JSONArray; import net.sf.json.JSONObject; import java.util.*; public class JSONUtil { public JSONUtil() { } public static <T> String parseObj2JSON(T obj) { if (obj == null) { return ""; } JSONObject jsonObj = JSONObject.fromObject(obj); return jsonObj.toString(); } public static <T> T parseJSON2Obj(String jsonStr, Class clazz) { JSONObject jsonObj = JSONObject.fromObject(jsonStr); return (T) JSONObject.toBean(jsonObj, clazz); } public static <T> String parseList2JSON(List<T> objList) { if (objList == null) { return ""; } JSONArray jsonArr = JSONArray.fromObject(objList); return jsonArr.toString(); } public static <T> List<T> parseJSON2List(String jsonStr, Class clazz) { JSONArray jsonArr = JSONArray.fromObject(jsonStr); return (List<T>) JSONArray.toCollection(jsonArr, clazz); } public static <T> String parseMap2JSON(Map<String, T> map) { if (map == null) { return ""; } JSONObject jsonObj = JSONObject.fromObject(map); return jsonObj.toString(); } public static Map<String, Object> parseJSON2Map(String jsonStr) { HashMap<String, Object> map = new HashMap<String, Object>(); JSONObject jsonObj = JSONObject.fromObject(jsonStr); Iterator var = jsonObj.keySet().iterator(); while (var.hasNext()) { Object key = var.next(); Object val = jsonObj.get(key); if (val instanceof JSONArray) { ArrayList<Map<String, Object>> list = new ArrayList<Map<String, Object>>(); Iterator it = ((JSONArray) val).iterator(); while (it.hasNext()) { JSONObject json = (JSONObject) it.next(); list.add(parseJSON2Map(json.toString())); } map.put(key.toString(), list); } else { map.put(key.toString(), val); } } return map; } public static <T> Map<String, T> parseJSON2Map(String jsonStr, Class clazz) { HashMap map = new HashMap(); JSONObject jsonObj = JSONObject.fromObject(jsonStr); Iterator var = jsonObj.keySet().iterator(); while (var.hasNext()) { Object key = var.next(); Object val = jsonObj.get(key); if (val instanceof JSONArray) { ArrayList list = new ArrayList(); Iterator it = ((JSONArray) val).iterator(); while (it.hasNext()) { JSONObject json = (JSONObject) it.next(); list.add(parseJSON2Map(json.toString(), clazz)); } map.put(key.toString(), list); } else if (val instanceof JSONObject) { map.put(key.toString(), JSONObject.toBean((JSONObject) val, clazz)); } else { map.put(key.toString(), val); } } return map; } public static String parseMapList2JSON(List<Map<String, Object>> mapList) { if (mapList == null) { return ""; } JSONArray jsonArr = JSONArray.fromObject(mapList); return jsonArr.toString(); } public static List<Map<String, Object>> parseJSON2List(String jsonStr) { JSONArray jsonArr = JSONArray.fromObject(jsonStr); ArrayList<Map<String, Object>> mapList = new ArrayList<Map<String, Object>>(); Iterator it = jsonArr.iterator(); while (it.hasNext()) { JSONObject json = (JSONObject) it.next(); mapList.add(parseJSON2Map(json.toString())); } return mapList; } public static <T> T parseJSON2Obj(String jsonStr, Class clazz, Map<String, Class> classMap) { JSONObject jsonObj = JSONObject.fromObject(jsonStr); return (T) JSONObject.toBean(jsonObj, clazz, classMap); } public static String encode(String str){ return str.replace("\"", "\\\""); } }