造成报错原因:根据提示,可以发现是Long类型无法转换成String类型导致的问题。
Could not write JSON: java.lang.Long cannot be cast to java.lang.String;
nested exceptionis com.fasterxml.jackson.databind.JsonMappingException:
java.lang.Long cannot be cast to java.lang.String
(through reference chain: java.util.ArrayList[0]->java.
调试后发现代码没有问题,而是把数据转换成JSON格式返回到前端时出现的问题。具体代码如下
@GetMapping("/find")
public List<Map<String, String>> findRole(){
return roleService.findRole();
}
解决方法:
Map 集合采用的是键值的方式存储数据,可以把 Map 的 value 类型改成顶级父类 Object 代替其他的类型来保存 value,这样就不存在转换数据类型时报错的问题了。
经过测试把 Map 集合的 值(value) 类型改成 Object 后不再报错。
@GetMapping("/find")
public List<Map<String, Object>> findRole(){
return roleService.findRole();
}