转载地址:https://www.jianshu.com/p/923a9fe78108
参考文档:https://blog.csdn.net/wyb112233/article/details/50179659
Gson是google推出的用于Java对象和JSON之间序列化和反序列化的公开库。使用Gson可以使我们的JSON解析工作更加方便。
如果你还不懂得JSON是什么,请查看它的JSON官方文档,我觉得这是最言简意赅的说明。
如果你想从大体上知道Gson用法而不追究细节,那么你可以先大体的浏览一下Gson的官方用户指南。它的原址在这里Gson User Guide。如果你不喜欢看英文,我也为你提供了我的翻译Gson用户指南(译)。
好了,现在你大体上对JSON和Gson有个大概的了解了,是时候深入到细节了。本篇文章介绍Gson的基础用法,主要分为三个部分,映射,配置和构建。
总览
映射
该部分主要是对Java的一些主要类型的映射做了讲解,包括各种集合、嵌套对象、空值等。具体查看如下教程
Gson教程一(译):Java-JSON的序列化和反序列化
Gson教程二(译):嵌套对象的序列化和反序列化
Gson教程三(译):Arrays和Lists的映射
Gson教程四(译):Maps的映射
Gson教程五(译):Sets的映射
Gson教程六(译):空值的映射
放一张本部分的思维导图,有助于学习后的记忆
上述的资料都要求构建的数据结构的名称和Json数据名称一致,使用 gson.fromJson(String,Object.class)的方式完成分析,但实际使用过程中还会有其他情况。比如提取几个json文件中的不同数据统一放在一个数据结构中。这个时候就需要使用JsonParser()将string进行一次解析,解析成GSON支持的数据结构。
JsonObject obj = new JsonParser().parse(json).getAsJsonObject();
上边的String json的数据就会解析成由JsonArray,JsonObject等数据结构构成的新的数据结构,在将这个数据结构进行解析,提取出需要的信息,在填充到我们的数据结构中就可以完成数据解析。
配置
该部分主要讲解了两个常用注解的作用@SerializedName和@Expose:
Gson教程七(译):@SerializedName和@Expose
局部思维导图:
构建
该部分主要讲解了通过GsonBuilder来为我们的Gson实例添加各种功能,使它更符合我们的需求。
Gson教程八(译):GsonBuilder基础以及命名策略
Gson教程九(译):强制序列化null值
Gson教程十(译):Exclusion Strategies
Gson教程十一(译):轻松使用仁慈的Gson(容错机制)
Gson教程十二(译):Float和Double类型的特殊值
Gson教程十三:模型版本化、日期格式化、漂亮输出
局部思维导图:
总结
本篇文章主要总结了之前的翻译,我觉得该系列教程对Gson的用法做了详尽的探讨,而且内容对于读者来说也很友好,非常适合Gson的学习。