GsonBuilder导出null值、格式化输出、日期时间

来源:互联网 发布:ps3网络设定 编辑:程序博客网 时间:2024/05/30 23:16

GsonBuilder导出null值、格式化输出、日期时间

转自:http://www.jianshu.com/p/c88260adaf5e

一般情况下Gson类提供的 API已经能满足大部分的使用场景,但我们需要更多更特殊、更强大的功能时,这时候就引入一个新的类 GsonBuilder。
GsonBuilder从名上也能知道是用于构建Gson实例的一个类,要想改变Gson默认的设置必须使用该类配置Gson。
GsonBuilder用法
Gson gson = new GsonBuilder()               //各种配置               .create(); //生成配置好的Gson


Gson在默认情况下是不动导出值null的键的,如:
public class User {    //省略其它    public String name;    public int age;    public String email;}Gson gson = new Gson();User user = new User("怪盗kidou",24);System.out.println(gson.toJson(user)); //{"name":"怪盗kidou","age":24}


可以看出,email字段是没有在json中出现的,当我们在调试是、需要导出完整的json串时或API接中要求没有值必须用Null时,就会比较有用。
使用方法:
Gson gson = new GsonBuilder()        .serializeNulls()        .create();User user = new User("怪盗kidou", 24);System.out.println(gson.toJson(user)); //{"name":"怪盗kidou","age":24,"email":null}


格式化输出、日期时间及其它:
这些都比较简单就不一一分开写了。
Gson gson = new GsonBuilder()        //序列化null        .serializeNulls()        // 设置日期时间格式,另有2个重载方法        // 在序列化和反序化时均生效        .setDateFormat("yyyy-MM-dd")        // 禁此序列化内部类        .disableInnerClassSerialization()        //生成不可执行的Json(多了 )]}' 这4个字符)        .generateNonExecutableJson()        //禁止转义html标签        .disableHtmlEscaping()        //格式化输出        .setPrettyPrinting()        .create();


注意:内部类(Inner Class)和嵌套类(Nested Class)的区别


文/怪盗kidou(简书作者)
原文链接:http://www.jianshu.com/p/c88260adaf5e
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。
0 0
原创粉丝点击