前端传递一个对象,对象里面有一个对象数组,数组里面有多条数据 怎么映射到spring的接收对象中
时间: 2024-02-18 16:03:15 浏览: 96
假设前端传递的对象为:
```json
{
"name": "张三",
"age": 20,
"hobbies": [
{"name": "看书", "level": "高"},
{"name": "打球", "level": "中"},
{"name": "听音乐", "level": "低"}
]
}
```
在 Spring 中,可以使用 `@RequestBody` 注解将前端传递的 JSON 对象映射到一个 Java 对象中。对于包含对象数组的情况,可以定义一个包含对象数组的 Java 对象,并在其中使用 `List` 来存储数组中的数据。
假设我们定义了一个名为 `Person` 的 Java 类,其中包含一个 `List` 类型的 `hobbies` 属性,可以这样定义:
```java
public class Person {
private String name;
private int age;
private List<Hobby> hobbies;
// 省略 getter 和 setter 方法
}
public class Hobby {
private String name;
private String level;
// 省略 getter 和 setter 方法
}
```
然后在 Spring MVC 的 Controller 中,可以定义一个接收 JSON 对象的方法并使用 `@RequestBody` 注解将其映射到 `Person` 对象中:
```java
@PostMapping("/person")
public void createPerson(@RequestBody Person person) {
// 处理接收到的 Person 对象
}
```
当前端传递的 JSON 对象被映射到 `Person` 对象中后,其中的 `hobbies` 数组也会被映射为一个包含多个 `Hobby` 对象的 `List`,可以通过 `getHobbies()` 方法获取到该列表。
阅读全文