GJson

Gson 是一个由 Google 开发的 Java 库,用于将 Java 对象序列化成 JSON 字符串,以及将 JSON 字符串反序列化成 Java 对象。

它支持广泛的数据类型,包括基本数据类型、集合、泛型、枚举等。Gson 以其简单易用和高性能而广受欢迎。

以下是 Gson 的一些主要特性:

  1. 简单性:Gson 提供了一个非常简洁的 API,使得序列化和反序列化变得非常简单。
  2. 灵活性:Gson 允许开发者通过注解来控制序列化和反序列化的行为。
  3. 性能:Gson 优化了序列化和反序列化的过程,提供了高性能的实现。
  4. 泛型支持:Gson 支持泛型类型,可以序列化和反序列化包含泛型的复杂对象。
  5. 枚举支持:Gson 能够序列化和反序列化枚举类型。
  6. 复杂对象支持:Gson 可以处理包含复杂嵌套对象的序列化和反序列化。
  7. 自定义序列化:开发者可以通过实现自定义序列化器来控制特定类型对象的序列化和反序列化过程。
  8. 流式 API:Gson 还提供了流式 API,允许开发者以流的方式处理大型 JSON 数据。

入门例子

简单的入门例子

1. Maven 依赖

首先,在你的 Maven 项目中的 pom.xml 文件中添加 Gson 的依赖项:

  [xml]
1
2
3
4
5
6
7
8
9
10
<dependencies> <!-- 其他依赖 --> <!-- Gson 依赖 --> <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.8.6</version> <!-- 请使用最新的稳定版本 --> </dependency> </dependencies>

2. Java 类定义

定义一个简单的 Java 类,该类将用于序列化和反序列化:

  [java]
1
2
3
4
5
6
7
8
9
10
11
12
public class Person { private String name; private int age; // 构造函数 public Person(String name, int age) { this.name = name; this.age = age; } // getter 和 setter 方法 }

3. 使用 Gson 序列化和反序列化

创建一个主类来演示如何使用 Gson 序列化 Person 对象到 JSON 字符串,以及如何将 JSON 字符串反序列化回 Person 对象:

  [java]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import com.google.gson.Gson; public class Main { public static void main(String[] args) { // 创建 Person 对象 Person person = new Person("Alice", 25); // 创建 Gson 实例 Gson gson = new Gson(); // 序列化 Person 对象到 JSON 字符串 String json = gson.toJson(person); System.out.println("Serialized JSON: " + json); // 反序列化 JSON 字符串到 Person 对象 Person personFromJson = gson.fromJson(json, Person.class); System.out.println("Deserialized Person: " + personFromJson.getName() + ", " + personFromJson.getAge()); } }

json 系列

字符串

DSL-JSON 最快的 java 实现

Ali-FastJson

Google-Gson

Jackson

二进制

Google protocol buffer

Apache Thrift

Hession

Kryo

Fst

Messagepack

Jboss Marshaling

其他

JsonPath

JsonIter