解决java.util.LinkedHashMap cannot be cast to xxx(domain实体类)的问题
一。问题描述1.最近在做分布式项目,需要用到其他子模块接口方法返回数据,同时这个项目也是前后端分离项目,后台接口返回的格式都是封装好了的json格式,我想拿到其中的data数据,如下图所示:2.我调用接口返回数据的getData()得到其中的data数据,再用list去接收它:@ApiOperation(value = "得到该用户的所有选修课程")@GetMapping("/getUserCou
![](https://csdnimg.cn/release/devpress/public/img/ic-book.4f347164.png)
一键AI生成摘要,助你高效阅读
问答
·
一。问题描述
1.最近在做分布式项目,需要用到其他子模块接口方法返回数据,同时这个项目也是前后端分离项目,后台接口返回的格式都是封装好了的json格式,我想拿到其中的data数据,如下图所示:
2.我调用接口返回数据的getData()得到其中的data数据,再用list去接收它:
@ApiOperation(value = "得到该用户的所有选修课程")
@GetMapping("/getUserCourseList")
@PreAuthorize("hasAnyAuthority('teacher_base','admin_base','student_base')")
public List<CourseInfo> getUserCourseList(){
//接收其他模块接口方法返回值
HttpRespond httpRespond=courseClient.getUserCourseList();
//用list接收得到其中的data数据
List<CourseInfo> courseInfoList= (List<CourseInfo>) (httpRespond.getData());
return courseInfoList;
}
3.再用postman去测试接口,能得到相应的数据:
4.但是如果我遍历该集合,则会出现以下错误:
二。解决方法
1.解决思路:从list中取出来的数据需要进行转化成json格式字符串,然后再将该json格式字符串转换成对象,这样就不会再出现报错情况,能成功遍历该list列表。
2.解决方式一:使用json-lib对其进行转换
pom.xml文件导入依赖:
<dependency>
<groupId>net.sf.json-lib</groupId>
<artifactId>json-lib</artifactId>
<version>2.3</version>
<classifier>jdk15</classifier>
</dependency>
后台循环list代码:
//遍历list
for(Object object:courseInfoList){
// 将list中的数据转成json字符串
JSONObject jsonObject=JSONObject.fromObject(object);
//将json转成需要的对象
CourseInfo courseInfo = (CourseInfo)JSONObject.toBean(jsonObject, CourseInfo.class);
System.out.println(courseInfo);
}
3.解决方式二:使用fast-json对其进行转换
pom.xml文件导入依赖:
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.61</version>
</dependency>
后台循环list代码:
//遍历list
for(Object object:courseInfoList){
// 将list中的数据转成json字符串
String jsonObject=JSON.toJSONString(object);
//将json转成需要的对象
CourseInfo courseInfo= JSONObject.parseObject(jsonObject,CourseInfo.class);
System.out.println(courseInfo);
}
4.都能够对list进行遍历:
更多推荐
所有评论(0)