前端传数组给后台

很多次遇到需要传数组到后台的情况,以前都是用“,”分隔组合成字符串传给后台,然后后台再拆分。这样做可以解决,但是很麻烦,要做几次判断,并且还要考虑传的数据里面有“,”的情况。于是上网搜索了一下,总结有两种方法(以前也搜索过,但是一直都没结果,不知道是不是姿势不对,今天既然有结果了,何不做个记录[微笑]

方法一:使用JSON.stringify 将数组对象转化成json字符串

这种方法是在前端的时候就把数组使用JSON.stringify的方式转换成后台认识的样子,后台就可以直接接收了:
js代码:(这里使用json的提交方式)

var ids = ['1','2'];
$.ajax({
	type : 'POST',
	url: 'course/delete',
	contentType : "application/json" ,
	data: JSON.stringify(ids),
	success : function(data) {
	}
});

传输的数据是这样的:
在这里插入图片描述
后台处理:

@RequestMapping(value = "/delete", method = {RequestMethod.POST})
@ResponseBody
public void delete(@RequestBody String[] id) {
	for (String string : id) {
        System.out.println(string);
    }
}

方法二:前端不作处理,在后台处理

js代码:(这里使用form的提交方式)

var array = ["1", "2"];
$.ajax({  
    type : 'POST',  
    url: 'course/delete',
    contentType: "application/x-www-form-urlencoded",
    data: {"array": array},
    success : function(data) {  
    }  
}); 

传输的数据是这样的:
在这里插入图片描述
后台处理:

@RequestMapping(value = "/delete", method = {RequestMethod.POST})
public void delete(HttpServletRequest req) {
    String[] array = req.getParameterValues("array[]");
    for (String string : array) {
        System.out.println(string);
    }
}

再次注意:两种post请求的content-type不同!

参考博文:原文

在Java后台接收前端对象数组,你可以使用以下步骤: 1. 在前端,将对象数组转换为JSON字符串,然后通过POST请求将数据发送到后台。你可以使用JavaScript中的`JSON.stringify()`方法将对象数组转换为JSON字符串。 2. 在后台,创建一个与前端对象对应的Java类。确保该类具有与前端对象相匹配的属性和构造函数。 3. 在后台,创建一个接收POST请求的Controller或Servlet。使用合适的框架和方法来处理HTTP请求。 4. 在后台,使用JSON解析库(如Jackson、Gson等)将接收到的JSON字符串转换为Java对象数组。根据你使用的框架和库,可以在Controller或Servlet中使用注解来绑定请求参数。 5. 在后台,通过处理程序对接收到的对象数组进行进一步的操作或存储。 以下是一个示例代码: ```java // 前端发送的JSON数据格式:[{"id": 1, "name": "John"}, {"id": 2, "name": "Jane"}] // 前端对象对应的Java类 public class MyObject { private int id; private String name; // 省略getter和setter方法 } // 后台接收请求的Controller @RestController public class MyController { @PostMapping("/objects") public void receiveObjects(@RequestBody MyObject[] objects) { // 对接收到的对象数组进行进一步操作或存储 for (MyObject object : objects) { System.out.println(object.getId() + ": " + object.getName()); } } } ``` 在这个示例中,前端将一个包含两个对象的对象数组发送到`/objects`路径。后台的`MyController`类通过`@PostMapping`注解接收POST请求,并使用`@RequestBody`注解将接收到的JSON字符串转换为`MyObject`对象数组。然后,你可以对这些对象进行进一步的操作或存储。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值