java.lang.ClassCastException异常
2021/7/8 12:06:00
本文主要是介绍java.lang.ClassCastException异常,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
项目中出行java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast to xxx(实体类)异常的原因:
参数如下:
{ "appId": 101, "tokenId": 201, "sign": 1, "userId": 45, "traineeInfo":"{\"name\":\"马继涛\",\"gender\":1,\"birth\":\"19930906\",\"idCardNo\":\"2012050614\",\"school\":\"北京第三中学\",\"contact\":\"18866666666\"}", "relationship":"母子", "orders": [{ "amount": 200, "totalAmount":200, "payMethod":2, "isTeacherQualified":"true", "courseCode": "51bf186450d8bc11ebb49b005056a7973c", "orderId": 20210708006, "merRecvInfo":"{\"merchantPayBal\":\"21343323\"}", "teacherInfo":"{\"isTeacherCertain\":1, \"teacherName\":\"王XX\", \"isTeacherQualified\":1 }" }, { "amount": 300, "totalAmount":300, "payMethod":1, "isTeacherQualified":"false", "courseCode": "87f06c1211d94f11eb9c8f68545a856785", "orderId": 20210708005, "merRecvInfo":"{\"merchantPayBal\":\"1112222333\"}", "teacherInfo":"{\"isTeacherCertain\":1, \"teacherName\":\"马XX\", \"isTeacherQualified\":0 }" } ] }
后端如果用BeanUtils.populate(contractInfo, body);
会导致orders内部结构是List<LinkedHashMap>
而不是List,遇到这种情况,不要着急,我们不是拿不到它的值,而是跟我们预期的不太理想,那我们就想办法让它达到预期的效果,就要用到fastjson来处理了。
List<OrderDo> orderDos = JSON.parseArray(JSON.toJSONString(contractInfo.getOrders()), OrderDo.class); contractInfo.setOrders(orderDos);
JSON、java对象、list之间的相互转换
1:pom引入
<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.44</version> </dependency>
2 常见转换
//1. List<Map<String, String>> list 转 JSONArray JSONArray jsonArray = JSONArray.parseArray(JSONObject.toJSONString(list)); /**list为 List<Map<String, String>>**/ //2.JSON 转成List List<ChannelItem> channelItemList = JSON.parseArray(itemJson,ChannelItem.class); /** itemJson: JsonArray ChannelItem : 对象bean类**/ //3. Map<String, String> 转 JSON JSONObject itemJSONObj = JSONObject.parseObject(JSON.toJSONString(itemMap)); /** itemMap 为 Map<String, String>**/ //4.JSON 转 Map<String, String> Map<String, Object> itemMap = JSONObject.toJavaObject(itemJSONObj, Map.class); /** itemJSONObj JSONObject**/ //5. JSONObject 转 JavaBean Student student = JSON.parseObject(JSONObjectStr, new TypeReference<Student>() {}); //因为JSONObject继承了JSON,所以这样也是可以的 //6.JSONObject 转 Map<String , String> Map<String ,String> param = JSONObject.parseObject(jsonObject.toJSONString(), new TypeReference<Map<String, String>>(){});
json转换来自于:https://blog.csdn.net/sinat_35626559/article/details/78919736
这篇关于java.lang.ClassCastException异常的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-04百万架构师第六课:设计模式:策略模式及模板模式
- 2025-01-04百万架构师第七课:设计模式:装饰器模式及观察者模式
- 2025-01-04适用于企业管理的协作工具API推荐
- 2025-01-04挑战16:被限流的CPU
- 2025-01-03企业在选择工具时,如何评估其背后的技术团队
- 2025-01-03Angular中打造动态多彩标签组件的方法
- 2025-01-03Flask过时了吗?FastAPI才是未来?
- 2025-01-0311个每位开发者都应知道的免费实用网站
- 2025-01-03从REST到GraphQL:为什么以及我是如何完成转型的
- 2025-01-03掌握RAG:从单次问答到连续对话