关于google的GsonBuilder中的2个设置

不吹不黑,google的gson一直是我最喜欢用的json序列化反序列化类库,用起来挺方便的。

下面介绍一下GsonBuilder的两个设置,

1 excludeFieldsWithoutExposeAnnotation()

序列化时移除那些没有打上@Expose标签的属性

2 setDateFormat(String pattern)

设置序列化时日期的序列化格式

下面举个栗子~

package com.kingnet.xydb.web.util;

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.annotations.Expose;

import java.util.Date;

/**
 * Created by xiaoj on 2016/6/29.
 */
public class GsonTest {
    public static void main(String[] args) {
        Gson gson = new GsonBuilder().excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd HH:mm:ss").create();

        GsonTest gsonTest = new GsonTest();
        gsonTest.setName("xiaojun");
        gsonTest.setAge(30);
        gsonTest.setDate(new Date());
        String json = gson.toJson(gsonTest);
        System.out.println(json); //输出:  {"name":"xiaojun","date":"2016-06-29 19:54:28"}
        GsonTest gsonTest1 = gson.fromJson(json,GsonTest.class);
        System.out.println(gsonTest1);// 输出:GsonTest{name='xiaojun', age=0, date=Wed Jun 29 19:54:28 CST 2016}

    }


    @Expose
    private String name;
    private int age;
    @Expose
    private Date date;

    public String getName() {
        return name;
    }

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

    public int getAge() {
        return age;
    }

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

    public Date getDate() {
        return date;
    }

    public void setDate(Date date) {
        this.date = date;
    }

    @Override
    public String toString() {
        return "GsonTest{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", date=" + date +
                '}';
    }
}


age这个属性没有打上@Expose标签,所以在toJson的时候,没有输出这个属性;date属性序列化后也如愿以偿的变成了设置好的日期格式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值