Repolode
google

google/gson

一个 Java 库,用于在 Java 对象与 JSON 之间相互转换,也支持没有源码的已有对象。

Star
24,238
Fork
4,491
未关闭 Issue
340
最近提交
10天前

这是什么?

Gson 提供 toJson() 和 fromJson() 等简单方法,可将 Java 对象转换为 JSON 字符串,也能把 JSON 解析回对应的 Java 对象。它不需要在类上添加注解,因此可以处理无法修改源码的已有对象或不可变对象。

该库对 Java 泛型支持较完整,能够处理嵌套较深、继承层次复杂以及大量使用泛型的对象。开发者也可以在默认映射不合适时,自定义对象的 JSON 表示方式。

需要注意的是,Gson 目前处于维护模式,现有缺陷会继续修复,但不太可能添加大型新功能。它主要面向 Java;由于基于反射的运行时与代码压缩、混淆存在冲突,不推荐用于 Android 正式发布的应用。

核心功能

  • 01通过 toJson() 将 Java 对象转为 JSON,通过 fromJson() 反向解析
  • 02无需源码或注解即可处理已有类
  • 03对 Java 泛型提供广泛支持
  • 04允许为对象自定义序列化表示
  • 05可处理继承层次较深和嵌套复杂的对象

适用场景

  • 将 JSON 接口响应解析为 Java 数据模型类
  • 把第三方或不可修改的 Java 对象序列化为 JSON
  • 将 Java 对象状态以 JSON 文件形式保存
  • 构建需要交换 JSON 数据的 Java 后端服务

快速上手

  1. 1

    在 Gradle 构建中添加 Gson 依赖

    implementation 'com.google.code.gson:gson:2.14.0'
  2. 2

    或在 Maven 的 pom.xml 中添加 Gson 依赖

  3. 3

    使用 Maven 从源码构建项目

    mvn clean verify

使用前须知

  • Gson 处于维护模式,不太可能添加大型新功能。
  • 不建议在 Android 上使用 Gson 处理 JSON,因为其反射机制在代码压缩和混淆时可能出错。
  • 从源码构建需要 JDK 17 或更高版本,且较新的 JDK 暂不支持构建。

标签

常见问题

gson 是什么?
一个 Java 库,用于在 Java 对象与 JSON 之间相互转换,也支持没有源码的已有对象。 Gson 提供 toJson() 和 fromJson() 等简单方法,可将 Java 对象转换为 JSON 字符串,也能把 JSON 解析回对应的 Java 对象。它不需要在类上添加注解,因此可以处理无法修改源码的已有对象或不可变对象。
gson 可以免费使用吗?用的什么许可证?
gson 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
gson 还在维护吗?
活跃维护中。gson 最近一次提交是在 2026年10月11日。
gson 适合用来做什么?
将 JSON 接口响应解析为 Java 数据模型类 把第三方或不可修改的 Java 对象序列化为 JSON 将 Java 对象状态以 JSON 文件形式保存 构建需要交换 JSON 数据的 Java 后端服务
gson 怎么安装和运行?
在 Gradle 构建中添加 Gson 依赖: implementation 'com.google.code.gson:gson:2.14.0' 或在 Maven 的 pom.xml 中添加 Gson 依赖 使用 Maven 从源码构建项目: mvn clean verify
在哪里获取 gson?
源代码和安装说明在 GitHub 上:https://github.com/google/gson

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目