Gson 教程
通常,所有现代应用都从远程服务(例如 REST 或 SOAP)中获取数据。 数据大部分为 XML 或 JSON 格式。 Gson 自动(在必要时使用简单的toJson()
和fromJson()
方法手动或手动)帮助应用进行 Java-JSON 序列化和反序列化。
Gson 可以处理任意 Java 对象,包括我们没有源代码的现有对象。
Gson 的最佳好处是,在我们为某些成员字段进行非常特定的操作之前,不必强制将注解添加到 Java 类中。
请注意,Gson
实例在调用 Json 操作时不会保持任何状态。 因此,您可以自由地将同一对象重用于多个 Json 序列化和反序列化操作。
在本 Gson 教程中,我们将学习在我们的应用中有效地使用它。
1. Gson 基础知识
在第一部分中,我们将了解 Google Gson 库及其基本映射功能。
-
安装
学习使用诸如 maven,gradle 或简单的 jar 文件之类的构建工具在 Java 应用中包括 gson 依赖项。
-
简单序列化和反序列化
学习如何使用 GSON 将简单的 Java 对象序列化为 JSON 表示,并将 JSON 字符串反序列化为等效的 Java 对象。
-
JSON 输出格式紧凑型 VS 精美打印
Gson 提供的默认 JSON 输出是紧凑的 JSON 格式。 使用精美打印功能来格式化 JSON 以供读取。
-
数组和对象列表的映射
了解如何使用 Google GSON 库将包含 json 数组的 JSON 反序列化或解析为 Java 数组或 Java 列表对象。
-
集的映射
了解如何使用 Google GSON 库反序列化或解析 JSON 以在 Java 中进行设置(例如
HashSet
)。 -
映射的映射
学习使用 Google Gson 库序列化
HashMap
。 还应学习使用 Gson 将 JSON 字符串反序列化为包含自定义对象的HashMap
,以便将字段值复制到适当的通用类型中。
2.高级用法
第一部分中的基本示例足以应付默认用例。 我们可能需要自定义 Gson 的行为以支持特定要求。 了解如何执行此操作。
-
使用
GsonBuilder
自定义 Gson 对象对于简单的用例,使用
'Gson gson = new Gson();'
就足够了。 学习使用 GsonBuilder 通过自定义配置创建新的 Gson 实例。 -
序列化空值
默认情况下,Gson 忽略空值。 学习在序列化和反序列化期间包括空值。
-
版本支持
可以使用
@Since
注解维护同一对象的多个版本。 Gson 将忽略任何大于配置的版本号的字段/对象。 -
使用
@SerializedName
的自定义字段名称了解如何使用 Google GSON 库将 Java 对象序列化为其 JSON 表示形式,以及将 JSON 字符串反序列化为等效的 Java 对象。
-
从序列化和反序列化中排除字段
Gson 支持多种机制来排除顶级类,字段和字段类型。 了解如何使用它们。
-
JsonReader
– 流式 JSON 解析器了解如何读取 JSON 字符串或文件作为 JSON 令牌流。
-
JsonParser
,JsonElement
和JsonObject
学习将 JSON 字符串解析或流化为 Java 对象的树形结构并转换为
JsonElement
。 -
自定义序列化和反序列化
学习将 JSON 字符串解析或流化为 Java 对象的树形结构并转换为
JsonElement
。 -
Gson 教程 - 回顾
让我们来回顾一下到目前为止我们已经学过的最重要的主题。
请把关于 gson 教程的问题交给我。
学习愉快!
参考文献: