当前位置:   article > 正文

解决FastJson com.alibaba.fastjson.JSONObject cannot be cast to的问题_com.alibaba.fastjson.jsonobject cannot be cast to

com.alibaba.fastjson.jsonobject cannot be cast to java.util.hashmap

问题展示

在这里插入图片描述

中文解释 :就是说 fastjson 解析不了你这个数据

数据格式

  1. public class TempMsgEncap<T> {
  2. private Integer channel;
  3. private List<T> msgList;
  4. public Integer getChannel() {
  5. return channel;
  6. }
  7. public void setChannel(Integer channel) {
  8. this.channel = channel;
  9. }
  10. public List<T> getMsgList() {
  11. return msgList;
  12. }
  13. public void setMsgList(List<T> msgList) {
  14. this.msgList = msgList;
  15. }
  16. }

一个对象 里面 包含一个 list 集合

示例数据

{"channel":0,"msgList":[{"channel":0,"created":"2021-10-09","msg":"sendmsg","msgId":"13","orderid":"30","status":1,"type":0,"uRcvId":51,"uSendId":125}]}

错误解析方法

直接使用  JSON.parseObject(String str, Class clasz) 

TempMsgEncap msgEncap = JSON.parseObject(text,TempMsgEncap.class);

正确解析方法

先使用 JSON.parseObject(String str),再使用  JSON.parseArray(String str, Class clasz)  

  1. JSONObject msgEncap = JSON.parseObject(text);
  2. List<Record> msgList = JSON.parseArray(msgEncap.getString("msgList"), Record.class);

总结

  • 如果你的数据格式中仅仅只是一个对象,那么可以直接使用 JSON.parseObject(String str, Class clasz)
  • 如果你的数据格式中 是 对象 + list ,那么的先使用 JSON.parseObject(String str),再使用  JSON.parseArray(String str, Class clasz) 
声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
  

闽ICP备14008679号