• @RequestBody详解:用于获取请求体中的Json格式参数


    获取请求体中的Json格式参数 (@RequestBody)

    当前端将一些比较复杂的参数转换成Json字符串通过请求体传递过来给后端,这种时候就可以使用@RequestBody注解获取请求体中的数据。

    而json字符串是包含在请求体中的,使用请求体传参通常都是使用POST请求

    SpringBoot的web启动器已经默认导入了jackson的依赖,不需要再额外导入依赖了。

    实体类:

    1. @Data
    2. @NoArgsConstructor
    3. @AllArgsConstructor
    4. public class User {
    5.    private String name;
    6.    private Integer age;
    7.    private String gender;
    8. }

    请求体数据

    {"name":"z","age":"3","gender":"男"}

    1.获取前端传的参数封装成实体对象

    如下把Json数据获取出来封装User对象

    1. @RestController
    2. public class TestController1 {
    3.    @PostMapping("/test")
    4.    public String testUser(@RequestBody User user){
    5.        System.out.println(user);
    6.        return user.toString();
    7.   }
    8. }

    打印了获取到的 User 对象,它会输出类似于 User(name=z, age=3, gender=男)

    2.获取参数封装成Map集合

    也可以把该数据获取出来封装成Map集合:

       
    1.  @PostMapping("/user")
    2.    public String TestController2(@RequestBody Map map){
    3.        System.out.println(map);
    4.        return "Test2";
    5.   }

    如果请求体传递过来的数据是一个User集合转换成的json,Json数据可以这样定义:

    [{"name":"z","age":4},{"name":"zz","age":5},{"name":"zzz","age":6}]

    方法定义:

       
    1.  @PostMapping("/users")
    2.    public String TestController3(@RequestBody List users){
    3.        System.out.println(users);
    4.        return "test3";
    5.   }

    假如是复杂对象,按照上面json定义方式结合在一起写即可:

    1. {
    2. "id":1,
    3. "Users":
    4. [{"name":"z","age":4},{"name":"zz","age":5},{"name":"zzz","age":6}],
    5. "score":["100","0","99"]
    6. }

      如果需要使用@RequestBody来获取请求体中Json并且进行转换,要求请求头 Content-Type 的值要为: application/json 。也就是前端以Content-Type 为application/json,传递json字符串数据,后端以@RequestBody 模型接收数据。

    ——————————————————————————————————————————

    其他Controller类常用的注解可以这个文章的汇总:Web开发Controller类详解-CSDN博客

  • 相关阅读:
    DJ8-2 主存储器的组织
    Android 4.4 如何添加局域网ADB调试流程
    Zabbix 使用同一ODBC监控不同版本MySQL
    Kerberos环境下 命令行连接kafka 和zk
    HTTP/3,它来了
    十八、MySQL添加外键?
    vue3+Echarts+Nodejs实现动态数据可视化
    AIGC笔记--Maya提取和修改FBX动作文件
    C- 动态链接
    金仓数据库KingbaseES Clusterware配置手册(集群搭建前置操作 )
  • 原文地址:https://blog.csdn.net/weixin_72926030/article/details/133841227