今天遇到了一个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