在Java中有时候需要传list,这时候可以传字符串,后台接收字符串后转换成对应的对象list,具体实现如下:
方法一
1.在controller中:
|
2.使用postman测试接口,如下:

方法二
1.在controller中代码如下:
@PostMapping("/api/classes/add")
public Result classesAdd(String params,HttpServletRequest request){
try {
JSONObject jsonObject = JSONObject.parseObject(params);
Integer lineId = (Integer) jsonObject.get("lineId");
JSONArray obj = (JSONArray) jsonObject.get("params");
JSONArray param = (JSONArray) jsonObject.get("param");
//获取当前操作用户id
String userid = tokenService.valid(request.getHeader("token"));
//根据线路id查询线路信息
Line line = lineService.getDao().findById(lineId);
if(null==line){
return Result.fail(902,"该班次对应的线路不存在!");
}
//创建班次对象并保存到数据库
for (Object s:obj) {
JSONObject object = (JSONObject) JSON.toJSON(s);
Classes build = Classes.builder().line(line).seatNum((Integer) object.get("seatNum")).isOrder(object.get("isOrder").equals(0) ? false : true)
.direction((String) object.get("direction")).firstTime((String) object.get("firstTime")).laterTime((String) object.get("laterTime")).build();
classesService.getDao().save(build);
}
for (Object s:param) {
JSONObject object = (JSONObject) JSON.toJSON(s);
Classes build = Classes.builder().line(line).seatNum((Integer) object.get("seatNum")).isOrder(object.get("isOrder").equals(0) ? false : true)
.direction((String) object.get("direction")).firstTime((String) object.get("firstTime")).laterTime((String) object.get("laterTime")).build();
classesService.getDao().save(build);
}
return Result.ok("新增班次成功");
}catch (Exception e){
e.printStackTrace();
return Result.fail(901,"新增班次失败");
}
}
|
2.使用postman测试接口,结果如下:

上图中params的完整数据如下:
| {"lineId":1,"params":[{"firstTime":"09:41","laterTime":"09:42","seatNum":1,"isOrder":0,"direction":"forward"}],"param":[{"firstTime":"09:41","laterTime":"09:42","seatNum":1,"isOrder":0,"direction":"reverse"}]} |

博客介绍了在Java中传list时可传字符串,后台接收后转换成对应对象list的具体实现。给出了两种方法,包括controller中的代码以及使用postman测试接口的情况。
1263

被折叠的 条评论
为什么被折叠?



