Gson和FastJson区别

本文通过一个具体的User类实例,比较了Gson与Fastjson两种序列化方式的不同表现。Fastjson会序列化所有可获取的方法结果,而Gson只序列化明确声明的属性。
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, 对它也是无济于事。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值