Java 从 JSON 提取数组并转换为 List 的操作方法

在 Java 中,处理 JSON 数据通常需要使用第三方库,Jackson 或 Gson,本文将详细介绍如何使用这些库从 JSON 中提取数组并将其转换为 Java 的 List 对象。
1. 引入依赖
你需要在项目中引入相应的依赖,这里以 Maven 项目为例:
1 Jackson 依赖
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jacksondatabind</artifactId>
<version>2.12.3</version>
</dependency>
2 Gson 依赖
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.6</version>
</dependency>
2. 使用 Jackson 提取 JSON 数组并转换为 List
Jackson 是一个功能强大的 JSON 处理库,可以方便地将 JSON 数据反序列化为 Java 对象。
1 示例 JSON 数据
假设我们有以下 JSON 数据:
{
"name": "John",
"age": 30,
"friends": ["Alice", "Bob", "Charlie"]
}
2 Java 类定义
我们需要定义一个对应的 Java 类来映射这个 JSON 数据:
import java.util.List;
public class Person {
private String name;
private int age;
private List<String> friends;
// Getters and Setters
}
2.3 使用 Jackson 反序列化 JSON 数据

import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.IOException;
import java.util.List;
public class Main {
public static void main(String[] args) {
String json = "{\"name\": \"John\", \"age\": 30, \"friends\": [\"Alice\", \"Bob\", \"Charlie\"]}";
ObjectMapper objectMapper = new ObjectMapper();
try {
Person person = objectMapper.readValue(json, Person.class);
List<String> friends = person.getFriends();
System.out.println("Friends: " + friends);
} catch (IOException e) {
e.printStackTrace();
}
}
}
3. 使用 Gson 提取 JSON 数组并转换为 List
Gson 是 Google 提供的一个轻量级 JSON 处理库,同样可以方便地进行 JSON 数据的解析和转换。
3.1 使用 Gson 反序列化 JSON 数据
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import java.lang.reflect.Type;
import java.util.List;
public class Main {
public static void main(String[] args) {
String json = "{\"name\": \"John\", \"age\": 30, \"friends\": [\"Alice\", \"Bob\", \"Charlie\"]}";
Gson gson = new Gson();
Type personType = new TypeToken<Person>() {}.getType();
Person person = gson.fromJson(json, personType);
List<String> friends = person.getFriends();
System.out.println("Friends: " + friends);
}
}
4. 相关问题与解答
问题 1:如何在 JSON 数据中包含嵌套的数组?
解答:你可以在 JSON 数据中使用嵌套的数组,并在 Java 类中定义相应的嵌套结构。
{
"name": "John",
"age": 30,
"friends": [
{"name": "Alice", "age": 25},
{"name": "Bob", "age": 28},
{"name": "Charlie", "age": 32}
]
}
Java 类定义如下:
import java.util.List;
public class Person {
private String name;
private int age;
private List<Friend> friends;
// Getters and Setters
}
public class Friend {
private String name;
private int age;
// Getters and Setters
}
然后使用 Jackson 或 Gson 进行反序列化即可。

问题 2:如何处理 JSON 中的复杂对象?
解答:对于复杂的 JSON 对象,可以使用 Map 或者自定义的 Java 类来处理,对于一个包含多个字段的对象:
{
"person": {
"name": "John",
"address": {
"street": "123 Main St",
"city": "Anytown"
}
}
}
Java 类定义如下:
import java.util.Map;
public class Address {
private String street;
private String city;
// Getters and Setters
}
public class Person {
private String name;
private Address address;
// Getters and Setters
}
反序列化时,可以使用Map 来处理未知的结构,或者直接定义相应的 Java 类。
各位小伙伴们,我刚刚为大家分享了有关“Java 从json提取数组并转换为list的操作方法”的知识,希望对你们有所帮助。如果您还有其他相关问题需要解决,欢迎随时提出哦!














