不同json和map互转
package com.json; import java.util.HashMap; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.Map; import java.util.Map.Entry; import org.json.JSONArray; import com.google.gson.Gson; public class jsonTest2 { public static void main(String[] args) { Map<Object, Object> map = new LinkedHashMap<Object, Object>(); for (int i = 1; i <= 180000; i++) { // map.put(String.valueOf(i), new String[] { "aa", "bb" ,"cc","dd","ee"}); // map.put(String.valueOf(i), "aa"); map.put(String.valueOf(i), new String[] { "aa", "bb" }); } // System.out.println(".........net.sf.json........."); // long startTime = System.currentTimeMillis(); // 获取开始时间 // net.sf.json.JSONObject jo = net.sf.json.JSONObject.fromObject(map); // long endTime = System.currentTimeMillis(); // 获取结束时间 // System.out.println("map转为net.sf.json.JSONObject运行时间: " + (endTime - startTime) + "ms"); // // long startTime2 = System.currentTimeMillis(); // 获取开始时间 // Map<Object, Object> m = jo; // long endTime2 = System.currentTimeMillis(); // 获取结束时间 // System.out.println("net.sf.json.JSONObject转为map运行时间: " + (endTime2 - startTime2) + "ms"); // // System.out.println("........org.json.........."); // long startTimeOrg = System.currentTimeMillis(); // 获取结束时间 // org.json.JSONObject js = new org.json.JSONObject(map); // long endTimeOrg = System.currentTimeMillis(); // 获取结束时间 // System.out.println("org.json.JSONObject转为map运行时间: " + (endTimeOrg - startTimeOrg) + "ms"); // // long startTimeOrg2 = System.currentTimeMillis(); // 获取开始时间 // Map<Object, Object> ma = new HashMap(); // @SuppressWarnings("rawtypes") // Iterator it = js.keys(); // while (it.hasNext()) { // String key = (String) it.next(); // Object value = js.get(key); // ma.put(key, value.toString()); // } // long endTimeOrg2 = System.currentTimeMillis(); // 获取结束时间 // System.out.println("map转为org.json.JSONObject运行时间: " + (endTimeOrg2 - startTimeOrg2) + "ms"); // // System.out.println("........Gson.........."); // long startTimeGson = System.currentTimeMillis(); // Gson gson = new Gson(); // String jsonStr = gson.toJson(map); // long endTimeGson = System.currentTimeMillis(); // System.out.println("map转为Gson运行时间: " + (endTimeGson - startTimeGson) + "ms"); // // long startTimeGson2 = System.currentTimeMillis(); // Map<Object, Object> ma2 = gson.fromJson(jsonStr, Map.class); // long endTimeGson2 = System.currentTimeMillis(); // System.out.println("Gson转为map运行时间: " + (endTimeGson2 - startTimeGson2) + "ms"); // // System.out.println("........com.alibaba.fastjson.........."); // // // long startTimeFastJson = System.currentTimeMillis(); // com.alibaba.fastjson.JSONObject jsonObject = (com.alibaba.fastjson.JSONObject) com.alibaba.fastjson.JSONObject // .toJSON(map); // long endTimeFastJson = System.currentTimeMillis(); // System.out.println("com.alibaba.fastjson转为map运行时间: " + (endTimeFastJson - startTimeFastJson) + "ms"); // // long startTimeFastJson2 = System.currentTimeMillis(); // String alijson = jsonObject.toJSONString(); // Map alimap = com.alibaba.fastjson.JSON.parseObject(alijson, Map.class); // long endTimeFastJson2 = System.currentTimeMillis(); // System.out.println("map转为com.alibaba.fastjson运行时间: " + (endTimeFastJson2 - startTimeFastJson2) + "ms"); //内存占用 System.out.println(".........占用内存........."); System.out.println(".........net.sf.json........."); Runtime r = Runtime.getRuntime(); r.gc(); long startMem = r.freeMemory(); // 开始时的剩余内存 net.sf.json.JSONObject jo2 = net.sf.json.JSONObject.fromObject(map); long orz = startMem - r.freeMemory(); // 剩余内存 现在 System.out.println("map转net.sf.json.JSONObject占用内存" + orz); String s=jo2.toString(); r.gc(); long startMem2 = r.freeMemory(); // 开始时的剩余内存 net.sf.json.JSONObject jjo = net.sf.json.JSONObject.fromObject(s); Map<Object, Object> m = jjo; // Map<Object, Object> m2 = jo2; long orz2 = startMem2 - r.freeMemory(); // 剩余内存 现在 System.out.println("net.sf.json.JSONObject转map占用内存" + orz2); System.out.println("........org.json.........."); r.gc(); long startMemOrg = r.freeMemory(); org.json.JSONObject js2 = new org.json.JSONObject(map); long memOrg = startMemOrg - r.freeMemory(); System.out.println("org.json.JSONObject转为map占用内存: " + memOrg); String ss = js2.toString(); r.gc(); long startMemOrg2 = r.freeMemory(); org.json.JSONObject jss2 = new org.json.JSONObject(ss); Map<Object, Object> maj = new HashMap(); @SuppressWarnings("rawtypes") Iterator it2 = jss2.keys(); while (it2.hasNext()) { String key = (String) it2.next(); Object value = jss2.get(key); maj.put(key, value.toString()); } long memOrg2 = startMemOrg2 - r.freeMemory(); System.out.println("map转为org.json.JSONObject占用内存: " + memOrg2); System.out.println("........Gson.........."); r.gc(); long startMemGson = r.freeMemory(); Gson gson2 = new Gson(); String jsonStr2 = gson2.toJson(map); long memGson = startMemGson - r.freeMemory(); System.out.println("map转为Gson占用内存: " + memGson); r.gc(); long startMemGson2 = r.freeMemory(); Map<Object, Object> ma22 = gson2.fromJson(jsonStr2, Map.class); long memGson2 = startMemGson2 - r.freeMemory(); System.out.println("Gson转为map占用内存: " + memGson2); System.out.println("........com.alibaba.fastjson.........."); r.gc(); long startMemFastJson = r.freeMemory(); com.alibaba.fastjson.JSONObject jsonObject2 = (com.alibaba.fastjson.JSONObject) com.alibaba.fastjson.JSONObject .toJSON(map); long memFastJson = startMemFastJson - r.freeMemory(); System.out.println("map转为com.alibaba.fastjson占用内存: " + memFastJson); String alijson2 = jsonObject2.toJSONString(); r.gc(); long startMemFastJson2 = r.freeMemory(); Map alimap2 = com.alibaba.fastjson.JSON.parseObject(alijson2, Map.class); long memFastJson2 = startMemFastJson2 - r.freeMemory(); System.out.println("com.alibaba.fastjson转为map占用内存: " + memFastJson2); } // net.sf.json包 public static void map2jsonstr1(Map<String, Object> map) { net.sf.json.JSONObject jo = net.sf.json.JSONObject.fromObject(map); Map<Object, Object> m = jo; } // org.json包 public static void map2jsonstr2(Map<String, Object> map) { org.json.JSONObject js = new org.json.JSONObject(map); Map<Object, Object> ma = new HashMap(); @SuppressWarnings("rawtypes") Iterator it = js.keys(); while (it.hasNext()) { String key = (String) it.next(); Object value = js.get(key); ma.put(key, value.toString()); } } // com.google.gson包 public static void map2jsonstr3(Map<String, Object> map) { Gson gson = new Gson(); String jsonStr = gson.toJson(map); Map<Object, Object> ma = gson.fromJson(jsonStr, Map.class); } // com.alibaba.fastjson包 public static void map2jsonstr4(Map<String, Object> map) { com.alibaba.fastjson.JSONObject jsonObject = (com.alibaba.fastjson.JSONObject) com.alibaba.fastjson.JSONObject .toJSON(map); String alijson = jsonObject.toJSONString(); Map alimap = com.alibaba.fastjson.JSON.parseObject(alijson, Map.class); } }