Gson高级使用和GsonBuilder设置

本文介绍了Gson在高级使用时的一些关键特性,包括通过GsonBuilder进行定制化配置,如类型适配器注册、复杂地图键序列化、空值序列化、日期格式设置和字段命名策略。还探讨了@Expose注解的作用,它在GsonBuilder创建的Gson实例中控制字段的序列化和反序列化。示例展示了如何排除未标记的字段,并讨论了如何使用@SerializedName进行字段重命名或自定义注解来改变字段解析策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概述:

在开发领域中数据传递有很多形式,通常数据调用交互采用XML,JSON,数据流,纯文本等形式;越来越多数据调用采用JSON,因为JSON数据结构简单,数据字节长度短,既简单又快速何乐而不为呢?

从JSON的结构入手,所有json数据最终分为三种情况:

标量(Scalar),也就是单纯的字符串或则数字形式
序列(Sequence),也就是若干数据按照一定顺序并列在一起又称“数组”
映射(Mapping),也就是key/value键值对
Gson高级使用

1.GsonBuilder

Gson是通过GsonBuilder生成,设定Gson的序列化和返序列号数据如:
Gson gson = new GsonBuilder()     

.registerTypeAdapter(Id.class, new IdTypeAdapter())
.enableComplexMapKeySerialization()
.serializeNulls()
.setDateFormat(DateFormat.LONG)
.setFieldNamingPolicy(FieldNamingPolicy.UPPER_CAMEL_CASE)//会把字段首字母大写
.setPrettyPrinting()
.setVersion(1.0)
.create();
以上则是单独对Id类设置了独立解析方式,以及设置时间的解析格式为长时间形式。

2.@Expose注解

如果采用new Gson()方式创建Gson则@Expose则没有任何效果,若采用GsonBuilder创建Gson并且调用了excludeFieldsWithoutExpo

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值