在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"}]} |