您的位置:首页 > 编程语言 > Java开发

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/Gson

http://www.jianshu.com/p/e740196225a4?utm_source=tuicool&utm_medium=referral

https://github.com/google/gson/blob/master/UserGuide.md#TOC-Overview
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java gson