有一个StockData对象,正常情况下json字符串转对象应该是:

StockData stockData = JSONObject.parseObject(str, StockData.class);

这样转没问题,get获取参数也正常,但是如果对象为泛型(如StockData<StockDetail>)时,像上面那样进行转换也是可以转换,但是StockDetail通过get获取对象参数时就会抛异常com.alibaba.fastjson.JSONObject cannot be cast to cn.seagen.sorting.bean.StockDetail。

StockData<StockDetail> stockData = JSONObject.parseObject(str, StockData.class);

提示JSONObject 不能转换为StockDetail对象,原因大概意思是:

fastjson 转换 json 对象遇到泛型时,就不会正确的转换成泛型对象,转换之后的对象是一个JSONObject对象,而不是泛型里面的那个对象,因此也就出现上面抛出的异常。

解决方案

fastjson 除了上面的方法外,还重载了一个方法。

public static <T> T parseObject(String text, TypeReference<T> type, Feature... features){}

因此上面将字符串转为泛型对象时,使用TypeReference来进行转换就可以了,这样转换后,StockDetail就可以正常的get到对象的参数值。

StockData<StockDetail> stockData = JSONObject.parseObject(str, new TypeReference<StockData<StockDetail>>(){});

fastjson 报错:com.alibaba.fastjson.JSONObject cannot be cast to xxxx相关推荐

  1. java报错com.alibaba.fastjson.JSONException: syntax error, pos 1, json

    今天做公司项目时碰到了这个报错信息:com.alibaba.fastjson.JSONException: syntax error, pos 1, json 后来定位到出现报错的关键代码行 loca ...

  2. fastjson转换包含date类型属性的对象时报错com.alibaba.fastjson.JSONException: For input string 解决方法

    fastjson转换包含date类型属性的对象时报错com.alibaba.fastjson.JSONException: For input string 解决方法 pojo里面的date属性上要加 ...

  3. docker中安装nacos报错 com.alibaba.nacos.shaded.io.grpc.StatusRuntimeException: UNAVAILABLE: io exception

    docker中安装nacos报错 com.alibaba.nacos.shaded.io.grpc.StatusRuntimeException: UNAVAILABLE: io exception ...

  4. 异常处理:Mybatis报错:There is no getter for property named ‘xxxx‘ in ‘class xxx‘

    异常处理:Mybatis报错:There is no getter for property named 'xxxx' in 'class xxx' 参考文章: (1)异常处理:Mybatis报错:T ...

  5. Java报错:java.math.BigDecimal cannot be cast to java.lang.String

    从数据库取数字,转为string,报错: java.math.BigDecimal cannot be cast to java.lang.String 错误代码 Integer.parseInt(( ...

  6. java list转json报错_一个fastjson转换JSON字符串的报错排查

    今天给一个java类加了几个字段,没想到转为json字符串的时候报错了,定位了一下原因,觉得这种情况遇到的应该不多,又想起来很久没写博客了,于是就把遇到的问题以及定位过程记下来,省了以后遇到的人再花时 ...

  7. fastjson报错:write javaBean error, fastjson version 1.2.76, class io.undertow.servlet.xx,已解决

    错误信息: com.alibaba.fastjson.JSONException: write javaBean error, fastjson version 1.2.76, class io.un ...

  8. EasyExcel报错com.alibaba.excel.exception.ExcelGenerateException: java.lang.ExceptionInInitializerError

    硅谷课堂项目BUG记录[01] 一.错误描述: 使用EasyExcel,在执行写操作时报错,并未将查询到的数据写到excel中. 二.控制台报错信息 com.alibaba.excel.excepti ...

  9. 若依报错com.alibaba.fastjson2.JSONArray cannot be cast to com.ruoyi.common.core.domain.model.LoginUser

    解决方案:谷歌版本过低,更新版本即可 后端报错信息 ​ 09:45:19.617 [http-nio-8080-exec-47] ERROR c.r.f.w.e.GlobalExceptionHand ...

最新文章

  1. 【Netty】入门Netty官方例子解析(二)Time Server
  2. @value报错_Excel这都是些啥?#VALUE!、#DIVO!、#NUM!、#REF!、#NULL!、#NA!
  3. 对quake3源代码的学习与研究初步的计划
  4. python创意编程比赛-关于举办2019年青岛市青少年创意编程与智能设计大赛的通知...
  5. linux以太坊开发环境搭建
  6. 【BLE MIDI】开发 BLE MIDI 硬件电子乐器设备需要遵循的相关规范 ( 资料收集 )
  7. C++ 的语言杂谈(一)--C++不是新手友好的
  8. 聚焦2020年财报:进击的恒大汽车,“变态”的智能汽车
  9. 如何查看系统启动时间-
  10. 关于OPENCV 访问外部传进来的Mat矩阵元素的问题
  11. html验证码功能如何实现原理,基于JS实现一个随机生成验证码功能
  12. spring aop源码分析总结
  13. 物联网|ZETA技术助力远超抄表实现智能化、精细化
  14. 用python做头像_教你用python下载和拼接微信好友头像图片
  15. 计算机启用来宾用户,win10怎么启用来宾账户_win10启用guest来宾账户的教程
  16. iOS 使用系统相册获取选取图片的名称
  17. logback之二:输出日志到控制台
  18. c语言进程管理,OS进程管理模拟(C语言实现)
  19. status_breakpoint谷歌浏览器如何解决?
  20. Thymeleaf模板(全程案例详解)

热门文章

  1. 西安理工大计算机学院院长,计算机学院研究生段快快自立自强成就自我
  2. mysql数据库入门教程
  3. OJ平台输入输出注意事项
  4. C++虚函数继承与虚继承
  5. 字符串脱敏两种方法比较哪个好?
  6. Unity项目进阶之保卫萝卜一.UI搭建
  7. PS教程:用PS调出复古暗蓝色湖景乡村风景照片
  8. 《武林外传》经典搞笑台词层出不穷
  9. c++ 五子棋AI 算法及实现 详细解析
  10. Python爬虫抓取B站热榜