## Gson解析JSON字符串### 简介在现代软件开发中,JSON (JavaScript Object Notation) 已成为数据交换的标准格式。Gson 是 Google 提供的一个 Java 库,用于在 Java 对象和 JSON 字符串之间进行序列化和反序列化。本文将详细介绍如何使用 Gson 解析 JSON 字符串。### 1. 添加 Gson 依赖首先,需要将 Gson 库添加到项目中。 如果使用 Maven,可以将以下依赖项添加到 `pom.xml` 文件中:```xml
com.google.code.gsongson2.10.1
```如果使用 Gradle,则将以下依赖项添加到 `build.gradle` 文件中:```groovy
dependencies {implementation 'com.google.code.gson:gson:2.10.1'
}
```### 2. 创建 Gson 对象使用 Gson 解析 JSON 字符串的第一步是创建一个 `Gson` 对象。 这可以通过调用 `Gson()` 构造函数来完成:```java
Gson gson = new Gson();
```### 3. 解析 JSON 字符串#### 3.1. 解析为 Java 对象要将 JSON 字符串解析为 Java 对象,可以使用 `fromJson()` 方法。 此方法接受两个参数:要解析的 JSON 字符串和要创建的对象的类。例如,假设我们有以下 JSON 字符串:```json
{"name": "John Doe","age": 30,"city": "New York"
}
```我们可以使用以下代码将其解析为 `Person` 对象:```java
class Person {String name;int age;String city;
}String json = "{\"name\":\"John Doe\",\"age\":30,\"city\":\"New York\"}";
Person person = gson.fromJson(json, Person.class);
```#### 3.2. 解析为集合Gson 还可以将 JSON 字符串解析为集合,例如 `List` 和 `Map`。例如,假设我们有以下 JSON 字符串:```json
[{"name": "John Doe","age": 30},{"name": "Jane Doe","age": 25}
]
```我们可以使用以下代码将其解析为 `List`:```java
Type personListType = new TypeToken>() {}.getType();
List people = gson.fromJson(json, personListType);
```### 4. 处理日期默认情况下,Gson 不知道如何处理日期。 如果 JSON 字符串包含日期,则需要使用 `GsonBuilder` 自定义 Gson 对象,并注册一个日期格式。例如,要解析以下 JSON 字符串:```json
{"date": "2023-12-17"
}
```可以使用以下代码:```java
Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd").create();class MyObject {Date date;
}String json = "{\"date\":\"2023-12-17\"}";
MyObject object = gson.fromJson(json, MyObject.class);
```### 5. 结论Gson 是一个强大且易于使用的库,用于在 Java 对象和 JSON 字符串之间进行序列化和反序列化。 通过使用 Gson,可以轻松地解析和处理各种 JSON 数据。