欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-03-23 22:55: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.parseO...

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