|
springboot接收POST的JSON数据(嵌套的JSON数据及数组)
在 Spring Boot 中接收嵌套的 JSON 数据和数组也非常简单。你可以创建多个 Java 类来表示嵌套的结构,并使用 `@RequestBody` 注解将请求体中的 JSON 数据映射到这些对象。下面是一个示例,展示如何接收嵌套的 JSON 数据和数组。
### 1. 创建嵌套的 Java 对象
假设你要接收一个用户的信息,其中包含地址信息和一个兴趣爱好数组。你可以创建三个类: `Address` 、 `User` 和 `Interest` 。
- public class Address {
- private String street;
- private String city;
- private String zipCode;
- // Getter 和 Setter 方法
- public String getStreet() {
- return street;
- }
- public void setStreet(String street) {
- this.street = street;
- }
- public String getCity() {
- return city;
- }
- public void setCity(String city) {
- this.city = city;
- }
- public String getZipCode() {
- return zipCode;
- }
- public void setZipCode(String zipCode) {
- this.zipCode = zipCode;
- }
- }
- public class Interest {
- private String name;
- // Getter 和 Setter 方法
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- }
- public class User {
- private String name;
- private int age;
- private Address address; // 嵌套的 Address 对象
- private List<Interest> interests; // 兴趣爱好的数组
- // Getter 和 Setter 方法
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public int getAge() {
- return age;
- }
- public void setAge(int age) {
- this.age = age;
- }
- public Address getAddress() {
- return address;
- }
- public void setAddress(Address address) {
- this.address = address;
- }
- public List<Interest> getInterests() {
- return interests;
- }
- public void setInterests(List<Interest> interests) {
- this.interests = interests;
- }
- }
复制代码
### 2. 创建控制器
然后,创建一个控制器来处理接收到的 POST 请求:
- import org.springframework.web.bind.annotation.*;
- import java.util.List;
- @RestController
- @RequestMapping("/api")
- public class UserController {
- @PostMapping("/users")
- public String createUser(@RequestBody User user) {
- // 处理接收到的用户信息
- StringBuilder responseMessage = new StringBuilder("User created: Name = " + user.getName() + ", Age = " + user.getAge() +
- ", Address = " + user.getAddress().getStreet() + ", " + user.getAddress().getCity() + ", " + user.getAddress().getZipCode() +
- ", Interests = ");
- // 处理兴趣爱好数组
- List<Interest> interests = user.getInterests();
- for (Interest interest : interests) {
- responseMessage.append(interest.getName()).append(" ");
- }
- return responseMessage.toString(); // 返回响应信息
- }
- }
复制代码
### 3. 启动 Spring Boot 应用
确保你的 Spring Boot 应用程序包含了 `spring-boot-starter-web` 依赖,以便能够处理 Web 请求。
### 4. 测试 POST 请求
你可以使用 Postman 或其他 API 测试工具发送一个 POST 请求到 `http://localhost:8080/api/users` ,请求体内容为嵌套的 JSON 格式,例如:
- json
- {
- "name": "John Doe",
- "age": 30,
- "address": {
- "street": "123 Main St",
- "city": "Anytown",
- "zipCode": "12345"
- },
- "interests": [
- {"name": "Reading"},
- {"name": "Traveling"},
- {"name": "Swimming"}
- ]
- }
复制代码
### 5. 运行和验证
启动你的 Spring Boot 应用程序,发送请求后,你应该能看到返回的响应信息,表示用户信息及其嵌套的地址信息和兴趣爱好已成功接收。
### 总结
通过以上步骤,你可以轻松地在 Spring Boot 中接收嵌套的 JSON 数据和数组。使用 `@RequestBody` 注解可以将嵌套的 JSON 数据自动转换为 Java 对象,方便后续处理。
|
|