一、用法
前端:代码
$.ajax({
type:"post",
url:"${pageContext.request.contextPath}/xxx",
data:JSON.stringify(array),
dataType:'JSON',
contentType:"application/json",
async:false,
success:function (data) {
}
})
后端代码:
@ResponseBody
@RequestMapping(value = {"xxx"}, method = RequestMethod.POST)
public String test(@RequestBody ArrayList<YourObject> list,HttpServletRequest request){
return "null";
}
二、注意(这也是我入过的坑,实体类属性大小写不规范)
先看个截图吧,一目了然:
如图所示:我在实体类中的是 IDCard 前端接收到就转为了小写的 idcard
如果你将信息上传的时候想着要与后端属性相对应,做映射,但在前端的对象中使用
var obj = {}
obj.IDCard = ”430703xxx“;
var arr = new Array();
arr.put(obj);
这样使用,恭喜你,和我一样调入坑里了
这样传过去是错误的,虽然看着没毛病,但事实告诉我,这确实行不通,我查了一下资料,是 JavaBean 的规范导致的,一般 JavaBean 属性都是首字母小写,以驼峰式命名;
解决方法:
方法一:
你将对象数据拉去下来的时候是什么,复制粘贴一份就好了,比如:
在上图中我之前拉去下来的对象属性是 idcard ,在前端界面修改后,上传给服务器为:
var obj = {}
obj.idcard= ”430703xxx“;
var arr = new Array();
arr.put(obj);
方法二: 在你的 JavaBean 对应的字段上添加 @JsonProperty 注解,如:
@JsonProperty("IDCard")
private String IDCard;
参考:https://blog.csdn.net/weixin_42810470/article/details/105633028