springboot objectmapper将json转为list
时间: 2025-06-27 14:04:51 浏览: 6
### 如何在Spring Boot中使用ObjectMapper将JSON字符串转换为List对象
在Spring Boot应用程序中,`ObjectMapper` 是 Jackson 库的核心组件之一,用于处理 JSON 数据的序列化和反序列化操作。通过 `ObjectMapper` 可以轻松实现将 JSON 字符串转换为 Java 对象列表的功能。
以下是具体的实现方法:
#### 1. 添加依赖项
确保项目中已引入 Jackson 的相关依赖。如果使用的是 Spring Boot,默认情况下已经包含了 Jackson 依赖。如果没有,则可以在 `pom.xml` 中添加以下内容:
```xml
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</dependency>
```
#### 2. 创建目标实体类
假设有一个简单的 `User` 类作为目标对象:
```java
public class User {
private String name;
private String address;
private List<String> favorites;
// Getters and Setters
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public List<String> getFavorites() {
return favorites;
}
public void setFavorites(List<String> favorites) {
this.favorites = favorites;
}
}
```
#### 3. 使用 ObjectMapper 进行转换
下面展示如何利用 `ObjectMapper` 将 JSON 字符串解析为 `List<User>` 对象:
```java
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.IOException;
import java.util.List;
public class JsonToListExample {
public static void main(String[] args) throws IOException {
String jsonString = "{ \"users\": [{\"name\":\"江南一点雨\", \"address\":\"China\", \"favorites\":[\"足球\",\"徒步\",\"Coding\"]}, {\"name\":\"sang\", \"address\":\"GZ\", \"favorites\":[\"阅读\",\"吉他\"]}]}";
ObjectMapper objectMapper = new ObjectMapper();
// 定义外部包装类
Wrapper wrapper = objectMapper.readValue(jsonString, Wrapper.class);
// 获取内部的用户列表
List<User> userList = wrapper.getUsers();
System.out.println(userList);
}
}
// 外部包装类定义
class Wrapper {
private List<User> users;
public List<User> getUsers() {
return users;
}
public void setUsers(List<User> users) {
this.users = users;
}
}
```
上述代码展示了如何创建一个外层包装类 (`Wrapper`) 来封装 JSON 数组结构,并将其映射为目标对象列表。
---
#### 关键点说明
- **Jackson 自动匹配字段名称**:只要 JSON 键名与 Java 属性名一致,Jackson 默认会自动完成映射[^4]。
- **复杂嵌套结构支持**:对于复杂的 JSON 结构(如数组、嵌套对象),可以通过自定义包装类的方式逐步拆分并映射至对应的 Java 实体类。
- **异常处理**:在实际开发过程中,推荐捕获可能发生的 `IOException` 或其他运行时异常,以便更好地调试错误。
---
###
阅读全文
相关推荐













