当前位置: 首页 > news >正文

【SpringBoot篇】5种类型参数传递json数据传参的操作

🎊专栏【SpringBoot】
🍔喜欢的诗句:天行健,君子以自强不息。
🎆音乐分享【如愿】
🎄欢迎并且感谢大家指出小吉的问题🥰

文章目录

  • 🌺普通参数
  • 🌺POJO参数
  • 🌺嵌套pojo参数
  • 🌺数组参数
  • 🌺集合参数
  • 🎄json数据传参
    • 🛸json格式
    • 🛸嵌套json格式
    • 🛸集合格式

在这里插入图片描述
当涉及到参数传递时,Spring Boot遵循HTTP协议,并支持多种参数传递方式。这些参数传递方式可以根据请求的不同部分进行分类。

  • 路径参数(Path Parameters):
    路径参数是指在URL路径中的一部分,用于标识资源或指定操作。路径参数通常以{}的形式出现在URL中,如/users/{id},其中id就是一个路径参数。路径参数可以在URL中动态地改变,从而实现对不同资源的操作。使用路径参数时,Spring Boot使用@PathVariable注解将路径参数绑定到方法参数上。
  • 查询参数(Query Parameters):
    查询参数通常作为URL的一部分,以?开始,以key=value的形式出现,多个参数之间使用&连接,如/users?id=1&name=John。查询参数主要用于筛选或过滤资源。在Spring Boot中,可以使用@RequestParam注解将查询参数绑定到方法参数上。
  • 请求体参数(Request Body Parameters):
    请求体参数是通过HTTP请求体中发送的数据,通常用于传递复杂结构的数据,如JSON、XML等。请求体参数可以包含多个字段,并且可以表示更为复杂的数据模型。在Spring Boot中,可以使用@RequestBody注解将请求体参数绑定到方法参数上。
  • 表单参数(Form Parameters):
    表单参数通常使用HTML表单提交的数据,可以通过application/x-www-form-urlencoded或multipart/form-data格式传输。表单参数与查询参数类似,但是通常用于提交数据而不是进行筛选。在Spring Boot中,可以使用@RequestParam注解将表单参数绑定到方法参数上。
  • 请求头参数(Request Header Parameters):
    请求头参数包含在HTTP请求的头部信息中,可以用于传递附加的元数据,如鉴权信息、用户代理等。在Spring Boot中,可以使用@RequestHeader注解将请求头参数绑定到方法参数上。

使用理论进行讲解时,我们可以了解这些参数传递方式的原理和用途。根据HTTP协议的规范和Spring Boot的设计,开发人员可以选择合适的参数传递方式来满足业务需求。这些参数传递方式在RESTful API开发中非常常见,可以用于处理各种场景下的数据传输。

🌺普通参数

我们在UserController类中写入这一段代码

 @RequestMapping("/commonParamDifferentname")@ResponseBodypublic String commonParamDifferentName(@RequestParam("name") String userName,int age){System.out.println("普通参数传递 userName ==> "+userName);System.out.println("普通参数传递 age ==> "+age);return "{'module':'common param different name'}";}

在这里插入图片描述

接收成功
在这里插入图片描述

🌺POJO参数

我们在User类中写入这一段代码

package com.example.domain;public class User {private String name;private int age;private Address address;@Overridepublic String toString() {return "User{" +"name='" + name + '\'' +", age=" + age +", address=" + address +'}';}public Address getAddress() {return address;}public void setAddress(Address address) {this.address = address;}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;}
}

我们在UserController类中写入这一段代码

//POJO参数:请求参数与形参对象中的属性对应即可完成参数传递@RequestMapping("/pojoParam")@ResponseBodypublic String pojoParam(User user){System.out.println("pojo参数传递 user ==> "+user);return "{'module':'pojo param'}";}

在这里插入图片描述
运行成功
在这里插入图片描述

🌺嵌套pojo参数

适用于下面这种,可以反复写
在这里插入图片描述

我们在Address类中写入这一段代码

package com.example.domain;
public class Address {private String province;private String city;@Overridepublic String toString() {return "Address{" +"province='" + province + '\'' +", city='" + city + '\'' +'}';}public String getProvince() {return province;}public void setProvince(String province) {this.province = province;}public String getCity() {return city;}public void setCity(String city) {this.city = city;}
}

在UserController里面写入这一段代码

  @RequestMapping("/pojoContainPojoParam")@ResponseBodypublic String pojoContainPojoParam(User user){System.out.println("pojo嵌套pojo参数传递 user ==> "+user);return "{'module':'pojo contain pojo param'}";}

继续测试
在这里插入图片描述

运行成功
在这里插入图片描述

🌺数组参数

@RequestMapping("/arrayParam")@ResponseBodypublic String arrayParam(String[] likes){System.out.println("数组参数传递 likes ==> "+ Arrays.toString(likes));return "{'module':'array param'}";}

在这里插入图片描述

在这里插入图片描述
运行成功
在这里插入图片描述

🌺集合参数

@RequestMapping("/listParam")@ResponseBodypublic String listParam(@RequestParam List<String> likes){System.out.println("集合参数传递 likes ==> "+ likes);return "{'module':'list param'}";}

在这里插入图片描述

在这里插入图片描述
运行成功
在这里插入图片描述

🎄json数据传参

我们在SpringMvcConfig里面加入这一段代码@EnableWebMvc,开启json数据自动转换

在这里插入图片描述

🛸json格式

我们找到上面 集合参数 的代码,把@RequestParam修改为@RequestBody

   @RequestMapping("/listParamForJson")@ResponseBodypublic String listParamForJson(@RequestBody List<String> likes){System.out.println("list common(json)参数传递 list ==> "+likes);return "{'module':'list common for json param'}";}

在这里插入图片描述

这里选择json,在下面写入数据
在这里插入图片描述

发现可以运行成功
在这里插入图片描述

🛸嵌套json格式

@RequestMapping("/pojoParamForJson")@ResponseBodypublic String pojoParamForJson(@RequestBody User user){System.out.println("pojo(json)参数传递 user ==> "+user);return "{'module':'pojo for json param'}";}

在这里插入图片描述
运行成功

在这里插入图片描述

🛸集合格式

@RequestMapping("/listPojoParamForJson")@ResponseBodypublic String listPojoParamForJson(@RequestBody List<User> list){System.out.println("list pojo(json)参数传递 list ==> "+list);return "{'module':'list pojo for json param'}";}

如果报错,重启一下就好了
在这里插入图片描述

在这里插入图片描述
运行成功
在这里插入图片描述

在这里插入图片描述

http://www.lryc.cn/news/256670.html

相关文章:

  • Mac系统升级node.js版本和npm版本
  • 风力发电对讲 IP语音对讲终端IP安防一键呼叫对讲 医院对讲终端SV-6005网络音频终端
  • 智能优化算法应用:基于蜉蝣算法3D无线传感器网络(WSN)覆盖优化 - 附代码
  • pymysql报错: unable to rollback、Already closed
  • [Linux] Web基础知识与http协议
  • 2020年第九届数学建模国际赛小美赛B题血氧饱和度的变异性解题全过程文档及程序
  • 【Flink on k8s】- 11 - 使用 Flink kubernetes operator 运行 Flink 作业
  • 【Linux】系统初识之冯诺依曼体系结构与操作系统
  • 【PyTorch】模型训练过程优化分析
  • GO -- 设计模式
  • angular状态管理方案(ngrx)
  • EPICS modbus 模块数字量读写练习
  • 万界星空科技低代码平台:搭建MES系统的优势
  • 【ArcGIS微课1000例】0078:创建点、线、面数据的最小几何边界
  • 五花八门客户问题(BUG) - 数据库索引损坏
  • mysql select count 非常慢
  • Tomcat管理功能使用
  • kyuubi整合flink yarn session mode
  • err_connect_length_mismatch错误
  • dva的学习总结
  • Docker部署.NET6项目
  • Pandas 打开有密码的Excel
  • CCF 202104-2:邻域均值--C++
  • 基于JAVA+SpringBoot+Vue的前后端分离的医院信息智能化HIS系统
  • Kotlin Flow 操作符
  • HarmonyOS4.0从零开始的开发教程08构建列表页面
  • 分布式环境下的session 共享-基于spring-session组件和Redis实现
  • docker基本管理和相关概念
  • Linix服务器添加dns解析
  • llama.cpp部署(windows)