1月7
今天使用RequestBody接受前端传过来的参数,以前接受字符串数组非常成功,这次把形参改成了List,原本以为顺利接受参数并映射成User的list结构,结果竟然在我取user.getId()时报了com.alibaba.fastjson.JSONObject cannot be cast to xxx的错。
后端:
@RequestMapping("/insertUser")
public void insertBlank(@RequestBody List userList) {
User user = userList.get(0);
System.out.println(user.getId());
}
我的user对象没有转换成功,还是一个一个JSONObject,但是请观察,JSONArray转换成了ArrayList。
嗯,配置的映射转换器生效了,结果表明,RequestBody能直接将json对象映射成java对象,但仅限于第一层的对象,至于嵌套的对象,则需要开发者自己去转换。
@RequestMapping("/insertUser")
public void insertUser(@RequestBody List list) {
List userList = list.stream().map(json -> JSONObject.toJavaObject(json, User.class)).collect(Collectors.toList());
service.insertUser(userList);
}
后端:
@RequestMapping("/insertUser")
public void insertBlank(@RequestBody List
User user = userList.get(0);
System.out.println(user.getId());
}
我的user对象没有转换成功,还是一个一个JSONObject,但是请观察,JSONArray转换成了ArrayList。
嗯,配置的映射转换器生效了,结果表明,RequestBody能直接将json对象映射成java对象,但仅限于第一层的对象,至于嵌套的对象,则需要开发者自己去转换。
@RequestMapping("/insertUser")
public void insertUser(@RequestBody List
List
service.insertUser(userList);
}




