记录一个ajax上传对象数组的坑

源码

ajax代码:

	function stu(sno,sname){
		var student = new Object();
		student.sno = sno;
		student.sname = sname;
		return student;
	}
	var stus = [];
	stus.push(stu("001","张三"));
	stus.push(stu("002","李四"));
	
	$.ajax({
			url:"http://localhost:8099/addStudent",
	    	type:"post",
	    	contentType:"application/json;charset=utf-8",
	    	dataType:"json",
	    	data:JSON.stringify({stus:stus}),
	    	success:function(data){
	    		msg = data.msgContext;
	    		document.getElementById("describe").style.display = "none";
	    		console.log(msg)
	    	},error:function(data){
	    		alert("出错了")
	    	}
		})

后台接收代码:

	// 保存页面源码
	@PostMapping(value="addStudent")
	public Message saveSourcesCode(@RequestBody List<Student> stus) {
		stus.forEach(System.out::println);
		return new Message("200","请求成功");
	}

环境:springboot

问题发现:

看似代码没有错,但后台报异常:

Cannot deserialize instance of `java.util.ArrayList<com.lds.pojo.Student>` out of START_OBJECT token

即不能反序列化对象

通过排查发现,上传的json串是一个数组,里面包含的对象才是需要上传的目标对象数组
在这里插入图片描述
所以问题在于这里:
在这里插入图片描述
之前尝试一次上传多个对象的时候在stringify()里添加了‘{ }’,后面一直没删除,以为不会影响大局,但我还是太小白了。

问题解决:

将’stringify()里的{ }'删除。修改如下
在这里插入图片描述

解决之后查看上传的json串:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210427000738634.png
格式正确,上传成功!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值