背景

  目前在公司负责的业务, 主要是跟JSON数据打交道, fastjson 、gson都用, 他们适用于不同场景。fastjson号称是业界处理json效率最高的框架, 没有之一。但在某些场景下, 效率最高的不一定

能适合你 ~

  

来, 先上两道菜

第一道普通菜 :

  1. public class User {
  2.  
  3. private Long user_id;
  4.  
  5. private String user_name;
  6.  
  7. public User() {
  8.  
  9. }
  10.  
  11. public User(Long userId, String name) {
  12. this.user_id = userId;
  13. this.user_name = name;
  14. }
  15.  
  16. public Long getUser_id() {
  17. return user_id;
  18. }
  19.  
  20. public void setUser_id(Long user_id) {
  21. this.user_id = user_id;
  22. }
  23.  
  24. public String getUser_name() {
  25. return user_name;
  26. }
  27.  
  28. public void setUser_name(String user_name) {
  29. this.user_name = user_name;
  30. }
  31.  
  32. public void setAge(int age) {
  33.  
  34. }
  35.  
  36. public int getAge() {
  37. return 18;
  38. }
  39.  
  40. public void setPwd() {
  41.  
  42. }
  43.  
  44. public String getPwd() {
  45. return "pwd";
  46. }
  47.  
  48. }

第二道开胃菜 :

  1. public class GsonAndFastJsonDemo {
  2.  
  3. public static void main(String[] args) {
  4.  
  5. Gson gson = new Gson();
  6.  
  7. String res = gson.toJson(init());
  8. System.out.println(res);
  9.  
  10. res = JSON.toJSONString(init());
  11. System.out.println(res);
  12. }
  13.  
  14. static User init() {
  15.  
  16. User user = new User();
  17. user.setUser_id(1L);
  18. user.setUser_name("威少");
  19.  
  20. return user;
  21. }
  22. }

结果一样么?你猜?

  1. 、、、gson
  2. {"user_id":1,"user_name":"威少"}
  3.  
  4. 、、、fastjson
  5. {"age":18,"pwd":"pwd","user_id":1,"user_name":"威少"}

为毛结果不一样?感兴趣的你, 可以看下源码, fastjson在序列化的时候, 凡是有getMethod方法,其对应属性不管是否已定义, 都能返回值。

gson 在序列化对象的时候, 则显得跟干净, 没有定义属性, 哪怕提供了getMethod, 对它也是无济于事。

Gson 和 Fastjson 你不知道的事的更多相关文章

  1. setTimeout,setInterval你不知道的事

    javascript线程解释(setTimeout,setInterval你不知道的事) 标签: javascript引擎任务浏览器functionxmlhttprequest 2011-11-21 ...

  2. Android JSON解析库Gson和Fast-json的使用对比和图书列表小案例

    Android JSON解析库Gson和Fast-json的使用对比和图书列表小案例 继上篇json解析,我用了原生的json解析,但是在有些情况下我们不得不承认,一些优秀的json解析框架确实十分的 ...

  3. Gson 与 fastJson 在使用上的差异(fastJson的优点)

    一.android 常用的json解析方式 Android 开发上常用的json解析方式有:Gson, fastJson,jackson. 因为jackjson jar包会比较大点(700+k),Gs ...

  4. 各个JSON技术的比较(Jackson,Gson,Fastjson)的对比

    JSON技术的调研报告 一 .各个JSON技术的简介和优劣 1.json-lib json-lib最开始的也是应用最广泛的json解析工具,json-lib 不好的地方确实是依赖于很多第三方包, 包括 ...

  5. JSON解析工具比较,主要GSON和FastJSON

    JSON解析工具比较,主要GSON和FastJSON 一 .各个JSON技术的简介和优劣 1.json-lib json-lib最开始的也是应用最广泛的json解析工具,json-lib 不好的地方确 ...

  6. JavaScript 你不知道的事 -- 关于函数

    接上篇Javascript 你不知道的事,直接条列了: 每个函数创建时默认带有一个prototype属性,其中包含一个constructor属性,和一个指向Object对象的隐藏属性__proto__ ...

  7. 浅谈Gson和fastjson使用中的坑

    相信大家在代码编写中都用过Gson和fastjson吧,用来进行 Java对象和json字符串之间的转换. 本篇文章就主要介绍博主在工作中使用这两款工具时遇到的坑和对应的解决办法. 觉得有用的可以点个 ...

  8. Android JSON、GSON、FastJson的封装与解析

    声明: 1.本帖只提供代码,不深入讲解原理.如果读者想要深入了解,那就不要在这个帖子上浪费时间了 2.客户端用的是Google官方的Volley访问服务器,具体了解Volley请戳 这里 3.本帖三种 ...

  9. Gson 和 FastJson 性能测试

    使用版本: compile 'com.google.code.gson:gson:2.7' compile 'com.alibaba:fastjson:1.2.17' 评测样板为一个People数组, ...

随机推荐

  1. IOS 单例 创建方式

    @implementation Me static Car *sharedInstance= nil;//声明一个静态对象引用并赋为nil +(Me *) sharedInstance//声明类方法( ...

  2. oracle 常用语句

    创建用户及授权create temporary tablespace test_temp tempfile 'C:\oracle\product\10.2.0\oradata\hszxdbtemp.d ...

  3. 【进阶——最小费用最大流】hdu 1533 Going Home (费用流)Pacific Northwest 2004

    题意: 给一个n*m的矩阵,其中由k个人和k个房子,给每个人匹配一个不同的房子,要求所有人走过的曼哈顿距离之和最短. 输入: 多组输入数据. 每组输入数据第一行是两个整型n, m,表示矩阵的长和宽. ...

  4. Tesseract-OCR识别验证码

    1. 安装Tesseract-OCR,安装后测试下是否安装成功

  5. selenium python (五)打印信息及设置等待时间

    #!/usr/bin/python# -*- coding: utf-8 -*-__author__ = 'zuoanvip' #一般情况下我们要验证打开的页面是否正确,可通过网页的Title和Cur ...

  6. 七牛云实现js上传

    七牛云的官方API写的一塌糊涂.最主要的,还是版本兼容的问题. 一.引入文件 引入了两个文件: 1.jquery-1.10.2.min.js 2.plupload.full.min.js 3.qini ...

  7. C++11中的右值引用

    原文出处:http://kuring.me/post/cpp11_right_reference May 18, 2015 移动构造函数 C++98中的左值和右值 C++11右值引用和移动语义 强制移 ...

  8. Java 断点调试总结

    为了准备调试,你需要在代码中设置一个断点先,以便让调试器暂停执行允许你调试,否则,程序会从头执行到尾,你就没有机会调试了. 1. 条件断点 断点大家都比较熟悉,在Eclipse Java 编辑区的行头 ...

  9. 高效使用STL

    高效使用STL  参考:http://blog.jobbole.com/99115/ 仅仅是个选择的问题,都是STL,可能写出来的效率相差几倍:熟悉以下条款,高效的使用STL: 当对象很大时,建立指针 ...

  10. Best Practices for Speeding Up Your Web Site

    The Exceptional Performance team has identified a number of best practices for making web pages fast ...