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