Jackson、FastJson、Gson序列化比较,默认配置下

package com.main;

import java.util.Date;

public class User {
    private String name;
    private Integer age;
    private Date birthday;
    private String email;


    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public Date getBirthday() {
        return birthday;
    }

    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public Double getPercent() {
        return this.age / 100.0;
    }

    public String getPreName() {
        return "Pre" + this.name;
    }

}

User user = new User();
        user.setName("小民");
        user.setEmail("xiaomin@sina.com");
        user.setAge(20);
        SimpleDateFormat dateformat = new SimpleDateFormat("yyyy-MM-dd");
        try {
            user.setBirthday(dateformat.parse("1996-10-01"));
        } catch (ParseException e) {
            e.printstacktrace();
        }

        /**
         * ObjectMapper是JSON操作的核心,Jackson的所有JSON操作都是在ObjectMapper中实现。
         * ObjectMapper有多个JSON序列化的方法,可以把JSON字符串保存File、OutputStream等不同的介质中。
         * writeValue(File arg0,Object arg1)把arg1转成json序列,并保存到arg0文件中。
         * writeValue(OutputStream arg0,Object arg1)把arg1转成json序列,并保存到arg0输出流中。
         * writeValueAsBytes(Object arg0)把arg0转成json序列,并把结果输出成字节数组。
         * writeValueAsstring(Object arg0)把arg0转成json序列,并把结果输出成字符串。
         */
        ObjectMapper mapper = new ObjectMapper();
        String json = null;
        try {
            json = mapper.writeValueAsstring(user);
        } catch (JsonProcessingException e) {
            e.printstacktrace();
        }
        System.out.println(json);
        //{"name":"小民","age":20,"birthday":844099200000,"email":"xiaomin@sina.com","percent":0.2,"preName":"Pre小民"}

        System.out.println("--------------------------------------------");
        user.setEmail(null);
        try {
            json = mapper.writeValueAsstring(user);//以get方法为准
        } catch (JsonProcessingException e) {
            e.printstacktrace();
        }
        System.out.println(json);
        //{"name":"小民","email":null,"preName":"Pre小民"}

        System.out.println("--------------------------------------------");
        Gson gson = new Gson();//以非空属性为准
        System.out.println(gson.toJson(user));
        //{"name":"小民","birthday":"Oct 1,1996 12:00:00 AM"}

        System.out.println("--------------------------------------------");
        System.out.println(JSON.toJSONString(user));//以get方法且非空属性为准
        //{"age":20,"name":"小民","preName":"Pre小民"}

相关文章

AJAX是一种基于JavaScript和XML的技术,能够使网页实现异步交...
在网页开发中,我们常常需要通过Ajax从后端获取数据并在页面...
在前端开发中,经常需要循环JSON对象数组进行数据操作。使用...
AJAX(Asynchronous JavaScript and XML)是一种用于创建 We...
AJAX技术被广泛应用于现代Web开发,它可以在无需重新加载页面...
Ajax是一种通过JavaScript和HTTP请求交互的技术,可以实现无...