Gson使用简单介绍

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自定义

参考

  1. https://en.wikipedia.org/wiki/Gson
  2. http://www.jianshu.com/p/e740196225a4?utm_source=tuicool&utm_medium=referral
  3. https://github.com/google/gson/blob/master/UserGuide.md#TOC-Overview
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值