ajax传递json数组,后台用List<T>接收

1,905 阅读1分钟

我们知道当用ajax传递一些参数到后台时,后台用一个实体类接收时,只需要ajax的传递的参数名和用于接收的实体类的属性名相同即可。 当前台用ajax传递一个json数组时,后台用List接收,这样传递和只用一个实体类接收有所不同:

let datas=[];
for(let i=0;i<10;i++){
let data;
data.name='张三'+i;
data.age=i;
datas.push(data);
}

$.ajax({
    type: 'POST',
    url: '/test/testReceive',
    contentType: 'application/json; charset=utf-8', //必须要加contentType
    dataType: 'text',
    data: JSON.stringify(datas), //传递到后台时,必须要吧json数组转换为字符串形式
    success: function (result) {
        if(result==”200”){
            alert(“操作成功”);
        }
    }
})

实体类:

public class Student {
    private String name;
    private Integer age;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }
}

controller:

@ResponseBody
@RequestMapping(value = "/testReceive", method = RequestMethod.POST)
public String saveMonthDuty(@RequestBody List<Student> StudentList) {
    try {
        for (Student student : StudentList) {
            ...
        }
        return "200";
    } catch (Exception e) {
        e.printStackTrace();
        return "500";
    }
}