Gson使用简单介绍
1、Gson概述
Gson (also known as Google Gson) is an open source Java library to serialize and deserialize Java objects to (and from) JSON.
Gson是一款开源的简单的序列化和反序列化java对象的组件,类似组件还有fastjson、jackson,尤其在android开发中大部分开发人员都使用Gson来做序列化和反序列化组件
2、Gson简单使用
最基本和最常用的两个方法
gson.toJson(src) //序列化
gson.fromJson(src,type) //反序列化
获得Gson对象的方式
第一种方式:直接使用Gson构造方法
Gson gson=new Gson();//简单粗暴的的获取Gson对象
第二种方式:使用GsonBuilder的create()方法来创建Gson对象
GsonBuilder gsonBuilder=new GsonBuilder();
//可以自定义个性化功能
gsonBuilder.setPrettyPrinting();
Gson gson=gsonBuilder.create();
备注:推荐使用第二种方式创建,功能更强大以及够个性化。
属性重命名 @SerializedName 注解的使用 ####
@SerializedName(value = "user_password", alternate = {"userName",
"username"})//value是默认字段名称、alternate是备选字段名称
private String userPassword;
使用TypeToken扩展泛型功能
List<User> list = gson.fromJson(string, new TypeToken<List<User>>() {
private static final long serialVersionUID = 1L;
}.getType());
备注:格式如 new TypeToken< xxx >(){}.getType
使用GsonBuilder导出null值、格式化输出、日期时间
Gson在默认情况下是不动导出值null的键的
Gson gson = new GsonBuilder()
//序列化null
.serializeNulls()
// 设置日期时间格式,另有2个重载方法
// 在序列化和反序化时均生效
.setDateFormat("yyyy-MM-dd")
// 禁此序列化内部类
.disableInnerClassSerialization()
//生成不可执行的Json(多了 )]}' 这4个字符)
.generateNonExecutableJson()
//禁止转义html标签
.disableHtmlEscaping()
//格式化输出
.setPrettyPrinting()
.create();
字段过滤的
@Expose(serialize=true,deserialize=false)
private String name;//序列化是忽略,反序列化时参与。
备注:通常Gson中的一些高级特性都是要配合GsonBuild配置获得Gson对象才有效,否则无效。