# GSON – 序列化和反序列化 JSON 为集合

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

了解如何在 Java 中使用 Google GSON 库反序列化或**解析 JSON 为集合**（例如[`HashSet`](https://howtodoinjava.com/java/collections/java-hashset/)）。 另外，学习**序列化集合为 JSON**。

> 值得一提的是，仅当`Set`是根元素时，我们才会做出额外的努力。 Gson 作为成员（在根下）可以很好地处理这些集。

## 1.序列化集合为 JSON

Java 程序使用`Gson.toJson()`方法将`HashSet`序列化为 JSON。

```java
Set<String> userSet = new HashSet<>();
userSet.add("Alex");
userSet.add("Brian");
userSet.add("Charles");

Gson gson = new Gson(); 

String jsonString= gson.toJson(userSet);  

System.out.println(jsonString);

```

程序输出。

```java
["Alex","Brian","Charles"]

```

## 2.反序列化 JSON 为集合

Java 程序，使用`Gson.fromJson()`方法和[`TypeToken`](https://static.javadoc.io/com.google.code.gson/gson/2.8.5/com/google/gson/reflect/TypeToken.html)将 JSON 反序列化为`HashSet`。

```java
import java.lang.reflect.Type;
import java.util.HashSet;
import java.util.Set;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;

String jsonString = "['Alex','Brian','Charles','Alex']";

Gson gson = new Gson(); 

Type setType = new TypeToken<HashSet<String>>(){}.getType();

Set<String> userSet = gson.fromJson(jsonString, setType);  

System.out.println(userSet);

```

程序输出：

```java
["Alex","Brian","Charles"]

```

向我提供有关**在 Java 中解析和反序列化 json 为集合**的问题。

学习愉快！

参考文献：

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