GsonBuilder—如何使⽤@Expo忽略字段
原⽂链接:GsonBuilder—HowtoIgnoreFieldswith@Expo
原⽂出⾃:NormanPeitek
译者:無名無
在之前的⽂章中,我们都是假设model字段都是需要序列化和反序列化的,这是⼀种最简单的情况,可真实的情况并不是如此,所以我们需要定制
我们的解析规则。
注解@Expo
之前⽂章有介绍如何序列化时不输出null的字段,当你不需要完全序列化model字段时,我们就可以使⽤@Expo来帮我结局。
@Expo默认有两个属性:rialize和derialize,默认值都为true,如果你给字段设置了@Expo注解,但是没有设置rialize和
derialize,那model的字段都将会输出。
看例⼦:
publicclassUrSimple{
@Expo()
Stringname;//equalsrialize&derialize
@Expo(rialize=fal,derialize=fal)
Stringemail;//equalsneitherrializenorderialize
@Expo(rialize=fal)
intage;//equalsonlyderialize
@Expo(derialize=fal)
booleanisDeveloper;//equalsonlyrialize
}
根据@Expo的⽤法,UrSimple序列化JSON输出只有name和isDeveloper,其他连个字段就不会被输出,因为rialize都是
fal;
反序列化的话,只有email和isDeveloper被忽略,因为derialize=fal
使⽤@Expo的前期是我们也需要使⽤GsonBuilder创建⼀个Gson实例:
GsonBuilderbuilder=newGsonBuilder();
eFieldsWithoutExpoAnnotation();
Gsongson=();
只有这样Gson在解析的时候@Expo才会⽣效。
Transient
使⽤transient来描述字段,将不能被序列化和反序列化
publicclassUrSimple{
Stringname;
Stringemail;
intage;
transientbooleanisDeveloper;//willnotberializedorderialized
}
总结
了解@Expo使⽤规则,清楚两个参数的含义,根据⾃⼰需求来配置@Expo属性。
Gson系列⽂章翻译回顾
1、Gson-Java-JSON序列化和反序列化⼊门
2、Gson-映射嵌套对象
3、Gson-Arrays和Lists映射对象
4、Gson-Map结构映射
5、Gson-Set集合映射
6、Gson-空值映射
7、GsonModelAnnotations-如何使⽤@SerializedName更改字段的命名
8、GsonModelAnnotations-@SerializedName匹配多个反序列化名称
9、GsonBuilder-基础和命名规则
10、GsonBuilder-序列化空值
11、GsonBuilder-忽略策略
12、GsonBuilder-GsonLenient属性
13、GsonBuilder-特殊类型Floats&Doubles
17、GsonBuilder-如何使⽤@Expo忽略字段
19、GsonAdvanced-映射枚举类型
20、GsonAdvanced-映射循环引⽤
21、GsonAdvanced-泛型
22、GsonAdvanced-简单⾃定义序列化(Part1)
24、GsonAdvanced-⾃定义反序列化基础
25、GsonAdvanced-⾃定义对象实例创建
26、GsonAdvanced-通过@JsonAdapter⾃定义(反)序列化过程
32、PracticalGson-如何解析多态对象
学习讨论
刚刚建了⼀个Android开源库分享学习群,有兴趣的⼩伙伴可以加⼊⼀起学习。
群⼆维码
本文发布于:2022-11-25 14:46:43,感谢您对本站的认可!
本文链接:http://www.wtabcd.cn/fanwen/fan/90/19112.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |