Json之 jackson,gson
阿新 • • 發佈:2018-11-12
Json之 jackson,gson等
(spring web使用了jackson作為預設實現)
常用有三種json解析jackson、fastjson、gson。
jackson
jackson主要使用ObjectMapper物件來進行序列化以及反序列化操作。
使用jackson可以毫無壓力的將複雜物件進行完全序列化,也可以將各種型別的物件反序列化。
ObjectMapper mapper = new ObjectMapper(); //直接讀取簡單JSON List list = mapper.readValue(result, List.class) //List轉JSON String json = mapper.writeAsString(Arrays.asList(1, 2, 3))
gson
Gson(又稱Google Gson)是Google公司釋出的一個開原始碼的Java庫,主要用途為序列化Java物件為JSON字串,或反序列化JSON字串串成Java物件.GSON核心jar包不到1M,非常精簡,但提供的功能無疑是非常強大的,如果使用JDK自帶的JSON解析API,使用起來相對比較繁瑣一點,而且程式碼量較多。
使用
/ 例如轉化一個型別不固定的List, 自定義型別同理 Gson gson = new Gson(); List origin = new ArrayList(); origin.add(12); origin.add("dfsf"); System.out.println(gson.toJson(origin)); // 結果為: [12,"dfsf"] // 讀取這個JSON陣列 Gson gson = new Gson(); List result = gson.fromJson("[12,\"dfsf\"]", List.class); for (Object o : result) { System.out.print(o.toString() + " "); } // 結果為: 12.0 dfsf
比較
jackson的效能幾乎是gson的10倍,而且隨著資料的增長,jackson的耗時也都很平穩,而gson則耗時增長明顯,最後直接OOM了,