SpringBoot接口接收参数是数组?数组如何发送到后端SpringBoot后台?

14 篇文章 0 订阅
7 篇文章 0 订阅

正常我们传入数组给后台,后台参数写Integer[] arr是接收不到数据的,必须以对象的形式传递,对象中先将数组进行JSONStringfy处理成JSON类型,然后在后台在解析该JSON数据。

前台代码:

1、this.memberList中存取了我需要的每个数字,但是是字符串类型,所以在传送之前先进行了一步骤转化。

2、ajax是自定义封装的全局发送ajax请求函数,第三个参数是要传递的数据。

		send() {
            //由于后台我要使用的是数字类型,所以我先将里面的数据转化为了数字类型
			let members = []
			for(let one of this.memberList){
				members.push(Number(one))
			}			
            //发送ajax请求
			this.ajax(this.urls.searchMembers,"POST",
            //重点步骤:后台创建了一个类接收前台的数据,类中的一个属性叫members
            //members就是要传递的JSON数组,先将数据进行JSON.stringify化处理
                {members:JSON.stringify(members)},
                 (res)=>{})
		},

后台部分:

1、 先创建一个类用于接收刚刚传递过来的对象.

import lombok.Data;

@Data
public class searchMembersForm {
    private String members;
}

2、在controller类中进行解析使用数据:

        ·采用的是JSONUtil.parseArray()函数进行解析。

        ·使用的包是

import cn.hutool.json.JSONUtil;

后端代码:

    @PostMapping("/searchMembers")
    @Operation(summary = "根据id查询姓名、id、头像")
    public R searchMembers(@RequestBody searchMembersForm form){
        //1、解析传来的数据
        List<Integer> list = JSONUtil.parseArray(form.getMembers()).toList(Integer.class);
        //2、执行我自己需要的逻辑
        ArrayList<HashMap> res = userService.searchMembersById(list);
        return new R().put("res",res);
    }


MyBaties的foreach用法

foreach可以将一个list集合中的每个数据拆分开,然后按照自己的要求给组装成想要的数据。

1、parameterType="list" 传入参数的类型

2、 collection="list" 遍历的类型

3、item="one" 每个数据的名称

4、separator="," 数据的链接符

5、开始和结束符:open="(" close=")"

    <select id="searchMembersById" parameterType="list" resultType="java.util.HashMap">
        select id,name,photo
        from tb_user
        where status=1
        and id in
        <foreach collection="list" item="one" separator="," open="(" close=")">
            #{one}
        </foreach>
    </select>

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值