传递复杂数组结构 如果是对象就直接用一个pojo来接受就可以了
前端数据格式
其实就是对象包裹一个集合 因为直接集合是不行的 List<Object> list 所以要用 Pojo{List<Object> list} 就可以了
{
"list": [
{
"classNum": 1,
"userId": 2,
"equipments": [
1,2,5
],
"startTime": "2021-01-15"
},
{
"classNum": 1,
"userId": 3,
"equipments": [
1,5,6
],
"startTime": "2021-01-15"
}
]
}
后端接受
@RequestMapping("insertSchedule")
@ApiOperation("插入排班信息")
public Map<String, Object> insertSchedule(@RequestBody InsertScheduleVo param) {
return userService.insertSchedule(
param.getList()
);
}
通过一个对象将数组接受过来 然后里面放数组就可以了
mvc会自动将这个这个对象里面的数组解析成对应的实体类 这样就可以接受数组了
@Data
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
public class UserSchduleEntityVo {
private Integer id;
private String classNum;
private Integer userId;
private String startTime;
private List<Integer> equipments;
}
@Data
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = true)
public class InsertScheduleVo {
private List<UserSchduleEntityVo> list;
}
不需要想这样一个一个解析
JSONArray processIds = param.getJSONArray("processId");
JSONArray userIds = param.getJSONArray("userIds");
List<Integer> process = JSONObject.parseArray(processIds.toJSONString(), Integer.class);
List<Integer> userIdsList = JSONObject.parseArray(userIds.toJSONString(), Integer.class);
Integer[] list = new Integer[process.size()];
Integer[] userArr = new Integer[userIdsList.size()];
String className = param.getString("className");
String depart = param.getString("depart");
Integer userPowerId = param.getInteger("userPowerId");