博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Gson 和 Fastjson 你不知道的事
阅读量:5875 次
发布时间:2019-06-19

本文共 1599 字,大约阅读时间需要 5 分钟。

背景

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

能适合你 ~ 

  

来, 先上两道菜

第一道普通菜 : 

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";    }}

第二道开胃菜 :

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方法,其对应属性不管是否已定义, 都能返回值。

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

 

转载于:https://www.cnblogs.com/chenmo-xpw/p/6128913.html

你可能感兴趣的文章
性能优化——统计信息——SQLServer自动更新和自动创建统计信息选项
查看>>
11. Spring Boot JPA 连接数据库
查看>>
洛谷P2925 [USACO08DEC]干草出售Hay For Sale
查看>>
MapReduce工作原理流程简介
查看>>
那些年追过的......写过的技术博客
查看>>
小米手机解锁bootload教程及常见问题
查看>>
Python内置函数property()使用实例
查看>>
Spring MVC NoClassDefFoundError 问题的解决方法。
查看>>
CentOS 6.9配置网卡IP/网关/DNS命令详细介绍及一些常用网络配置命令(转)
查看>>
python基础教程_学习笔记19:标准库:一些最爱——集合、堆和双端队列
查看>>
C# 解决窗体闪烁
查看>>
CSS魔法堂:Transition就这么好玩
查看>>
【OpenStack】network相关知识学习
查看>>
centos 7下独立的python 2.7环境安装
查看>>
[日常] 算法-单链表的创建
查看>>
前端工程化系列[01]-Bower包管理工具的使用
查看>>
使用 maven 自动将源码打包并发布
查看>>
Spark:求出分组内的TopN
查看>>
Python爬取豆瓣《复仇者联盟3》评论并生成乖萌的格鲁特
查看>>
关于跨DB增量(增、改)同步两张表的数据小技巧
查看>>