java.lang.ClassCastException: com.alibaba.fastjson.JSONObject cannot be cast to

2022-07-28,,,,

今天遇到了一个bug:

java.lang.ClassCastException: com.alibaba.fastjson.JSONObject cannot be cast to com.dto.resumeHrSearchDTO

出错代码如下:

// json字符串
String json = companyUserResumeSearchHistory.getJson();
// 将json字符串解析为json对象
JSONObject jsonObject = JSONObject.parseObject(json);
// 将json对象转换为自定义对象
resumeHrSearchDTOList.add(resumeHrSearchDTO(jsonObject));

这样代码可以过编译,但是运行时会报错,错误显示在第三行代码。
意思是不能直接把json对象强转为自定义的resumeHrSearchDTO类对象

修改后正确代码为:

// json字符串
String json = companyUserResumeSearchHistory.getJson();
// 将json字符串解析为json对象
JSONObject jsonObject = JSONObject.parseObject(json);
// 将json对象转换为自定义对象
ResumeHrSearchDTO resumeHrSearchDTO = JSON.toJavaObject(jsonObject, ResumeHrSearchDTO.class);
// 添加到集合中
resumeHrSearchDTOList.add(resumeHrSearchDTO);

结论:需要使用JSON.toJavaObject()方法先把json对象转换为Java对象,才能再转换为自定义的类对象

本文地址:https://blog.csdn.net/qq_42804736/article/details/109647760

《java.lang.ClassCastException: com.alibaba.fastjson.JSONObject cannot be cast to.doc》

下载本文的Word格式文档,以方便收藏与打印。