# GSON – 序列化和反序列化 JSON

> 原文： [https://howtodoinjava.com/gson/gson-serialize-deserialize-json/](https://howtodoinjava.com/gson/gson-serialize-deserialize-json/)

了解如何使用 Google **GSON** 库将 Java 对象序列化为其 JSON 表示，并将 JSON 字符串反序列化为等效的 Java 对象。 GSON 提供了简单的`toJson()`和`fromJson()`方法，将 Java 对象转换为 JSON，反之亦然。

使用`GsonBuilder`创建具有自定义配置的`Gson`对象，例如**精美打印**。

```java
//Gson gson = new Gson();
Gson gson = new GsonBuilder().setPrettyPrinting().create();

Employee emp = new Employee(1001, "Lokesh", "Gupta", "howtodoinjava@gmail.com");

String jsonString = gson.toJson(emp);

Employee empObject = gson.fromJson(jsonString, Employee.class);

```

## 1.依赖

Maven 依赖项。 访问 [maven 仓库](https://mvnrepository.com/artifact/com.google.code.gson/gson)以获取最新版本。

```java
<dependency>
  <groupId>com.google.code.gson</groupId>
  <artifactId>gson</artifactId>
  <version>2.8.5</version>
</dependency>

```

Gradle 依赖项。

```java
<dependency>
dependencies {
  implementation 'com.google.code.gson:gson:2.8.5'
}

```

## 2.序列化 – 使用 Gson 编写 JSON

[在 Gson 上下文中的序列化](https://howtodoinjava.com/java/serialization/a-mini-guide-for-implementing-serializable-interface-in-java/)意味着将 Java 对象转换为其 JSON 表示形式。 为了进行序列化，我们需要一个 **Gson** 对象，该对象可以处理转换。 接下来，我们需要调用函数`toJson()`，并传递`Employee`对象。

```java
Employee emp = new Employee(1001, "Lokesh", "Gupta", "howtodoinjava@gmail.com");

Gson gson = new Gson();

String jsonString = gson.toJson(emp);

System.out.println(jsonString);

```

程序输出。

```java
{
   "id":1001,
   "firstName":"Lokesh",
   "lastName":"Gupta",
   "email":"howtodoinjava@gmail.com"
}

```

## 2.反序列化 – 使用 Gson 读取 JSON

在 Gson 上下文中，[反序列化](https://howtodoinjava.com/java/serialization/how-deserialization-process-happen-in-java/)意味着将 JSON 字符串转换为等效的 Java 对象。 为了进行反序列化，我们需要一个 **Gson** 对象，并从`Json()`调用函数，并在解析完成后传递两个参数，即 JSON 字符串和所需的 Java 类型。

```java
String jsonString = "{'id':1001, 'firstName':'Lokesh', 'lastName':'Gupta', 'email':'howtodoinjava@gmail.com'}";

Gson gson = new Gson();

Employee empObject = gson.fromJson(jsonString, Employee.class);

System.out.println(empObject);

```

程序输出：

```java
Employee [id=1001, firstName=Lokesh, lastName=Gupta, email=howtodoinjava@gmail.com]

```

向我提供有关`Gson`对象及其`toJson()`和`fromJson()`方法的问题。

学习愉快！

参考文献：

[GSON Github](https://github.com/google/gson)