Gson使用简单介绍
2016-04-06 17:40
495 查看
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对象才有效,否则无效。
TypeAdapter自定义
参考
https://en.wikipedia.org/wiki/Gsonhttp://www.jianshu.com/p/e740196225a4?utm_source=tuicool&utm_medium=referral
https://github.com/google/gson/blob/master/UserGuide.md#TOC-Overview
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树