Gson 和 Fastjson 你不知道的事

背景

  目前在公司负责的业务, 主要是跟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, 对它也是无济于事。

时间: 2024-10-23 08:57:46

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

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

一.android 常用的json解析方式 Android 开发上常用的json解析方式有:Gson, fastJson,jackson. 因为jackjson jar包会比较大点(700+k),Gson和fastjson的功能又基本够用,所以一直没正式用过jackjson.自己有用的就是Gson和fastjson 二.基本使用方式 Gson //解成对象 Fromat mFromat = new Gson().fromJson(jsonStringObject, Fromat.class);

string.Format之你不知道的事

1.格式化货币(跟系统的环境有关,中文系统默认格式化人民币,英文系统格式化美元) string.Format("{0:C}",0.2) 结果为:¥0.20 (英文操作系统结果:$0.20) 默认格式化小数点后面保留两位小数,如果需要保留一位或者更多,可以指定位数 string.Format("{0:C1}",23.15) 结果为:¥23.2 (截取会自动四舍五入) 格式化多个Object实例 string.Format("市场价:{0:C},优惠价{1:C

关于算法,那些你不知道的事

关于算法,那些你不知道的事 1.算法,不止于刷题 提到算法,不管是科班出身还是半路出家的程序员可能都会说上几句,算法谁没学过谁不知道啊?对于走工业界路线而非学术路线的同学来说,算法学习的最大作用也许是找工作-- 毕竟工作后,绝大多数时候都用各种成熟的类库,少有自己实现高级数据结构和算法的时候.但刚结束一学期修的算法课,上得我还真跟没学过算法似的,让我大开眼界,虽然每次课上我都听的不是很懂,但每节都期盼着老师又能带来什么新奇的东西.一点点发现,原来竟然还有这么多很有用却从来没学习过甚至没听过的算法

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

接上篇Javascript 你不知道的事,直接条列了: 每个函数创建时默认带有一个prototype属性,其中包含一个constructor属性,和一个指向Object对象的隐藏属性__proto__.constructor属性的值为该函数的对象.在一个函数前面加上new来调用,则会创建一个隐藏连接到该函数prototype成员的新对象(由__proto__属性来链接),同时函数的this将会被绑定到那个新对象上. 函数总是返回一个值:如果没有指定返回值,就返回undefined:如果当做构造函

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

JSON技术的调研报告 一 .各个JSON技术的简介和优劣 1.json-lib json-lib最开始的也是应用最广泛的json解析工具,json-lib 不好的地方确实是依赖于很多第三方包, 包括commons-beanutils.jar,commons-collections-3.2.jar,commons-lang-2.6.jar,commons-logging-1.1.1.jar,ezmorph-1.0.6.jar, 对于复杂类型的转换,json-lib对于json转换成bean还有缺

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

Android JSON解析库Gson和Fast-json的使用对比和图书列表小案例 继上篇json解析,我用了原生的json解析,但是在有些情况下我们不得不承认,一些优秀的json解析框架确实十分的好用,今天我们为了博客的保质保量,也就不分开写,我们直接拿比较火的Gson和Fast-json来使用,末尾在进行一些分析 Android JSON原生解析的几种思路,以号码归属地,笑话大全,天气预报为例演示 一.各有千秋 两大解析库的东家都是巨头,一个来自于Google官方,一个来自阿里巴巴,我们这

你不知道的事-建站始末1【准备篇】

阅读目录 建站四部曲: 你不知道的事-建站始末1[准备篇] 你不知道的事-建站始末2[框架篇] 你不知道的事-建站始末3[实现篇] 你不知道的事-建站始末4[总结篇] 本篇目录: 写在前面 为什么要建站? 建站计划 前端总结 知识点总结 域名和服务器 关于开源 未完待续 本篇内容会有些长,希望各位看官可以认真的阅读下去,我相信肯定会有收获. 写在前面 蝴蝶眨几次眼睛,才学会飞行,夜空洒满了星星,但几颗会落地. --你不知道的事 蝴蝶眨眼睛?星星会落地?当然很多人会认为这是无稽之谈,但是有些人却认

Gson与FastJson比较

一. 简介和优劣 1.Google的Gson Gson是目前功能最全的Json解析神器,Gson当初是为因应Google公司内部需求而由Google自行研发而来,但自从在2008年五月公开发布第一版后已被许多公司或用户应用.Gson的应用主要为toJson与fromJson两个转换函数,无依赖,不需要例外额外的jar,能够直接跑在JDK上. 而在使用这种对象转换之前需先创建好对象的类型以及其成员才能成功的将JSON字符串成功转换成相对应的对象. 类里面只要有get和set方法,Gson完全可以将

Android JSON 解析库的使用 - Gson 和 fast-json

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集. JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C.C++.C#.Java.JavaScript.Perl.Python等).这些特性使JSON成为理想的数据交换语言. 易于人阅读和编写,同时也易于机器解析和生成(网络传输速率). GSON是由谷歌官方推出的 JSON 与 Java 对象转化的 Java类库 fast-json 阿里推