目前在公司負責的業務, 主要是跟JSON數據打交道, fastjson 、gson都用, 他們適用於不一樣場景。fastjson號稱是業界處理json效率最高的框架, 沒有之一。但在某些場景下, 效率最高的不必定json
能適合你 ~ 框架
來, 先上兩道菜this
第一道普通菜 : spa
public class User { private Long user_id; private String user_name; public User() { } public User(Long userId, String name) { this.user_id = userId; this.user_name = name; } public Long getUser_id() { return user_id; } public void setUser_id(Long user_id) { this.user_id = user_id; } public String getUser_name() { return user_name; } public void setUser_name(String user_name) { this.user_name = user_name; } public void setAge(int age) { } public int getAge() { return 18; } public void setPwd() { } public String getPwd() { return "pwd"; } }
第二道開胃菜 :code
public class GsonAndFastJsonDemo { public static void main(String[] args) { Gson gson = new Gson(); String res = gson.toJson(init()); System.out.println(res); res = JSON.toJSONString(init()); System.out.println(res); } static User init() { User user = new User(); user.setUser_id(1L); user.setUser_name("威少"); return user; } }
結果同樣麼?你猜?對象
、、、gson {"user_id":1,"user_name":"威少"} 、、、fastjson {"age":18,"pwd":"pwd","user_id":1,"user_name":"威少"}
爲毛結果不同?感興趣的你, 能夠看下源碼, fastjson在序列化的時候, 凡有getMethod方法,其對應屬性不論是否已定義, 都能返回值。blog
gson 在序列化對象的時候, 則顯得跟乾淨, 沒有定義屬性, 哪怕提供了getMethod, 對它也是無濟於事。get