fastjson 报错:com.alibaba.fastjson.JSONObject cannot be cast to xxxx
有一个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相关推荐
- java报错com.alibaba.fastjson.JSONException: syntax error, pos 1, json
今天做公司项目时碰到了这个报错信息:com.alibaba.fastjson.JSONException: syntax error, pos 1, json 后来定位到出现报错的关键代码行 loca ...
- fastjson转换包含date类型属性的对象时报错com.alibaba.fastjson.JSONException: For input string 解决方法
fastjson转换包含date类型属性的对象时报错com.alibaba.fastjson.JSONException: For input string 解决方法 pojo里面的date属性上要加 ...
- docker中安装nacos报错 com.alibaba.nacos.shaded.io.grpc.StatusRuntimeException: UNAVAILABLE: io exception
docker中安装nacos报错 com.alibaba.nacos.shaded.io.grpc.StatusRuntimeException: UNAVAILABLE: io exception ...
- 异常处理: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 ...
- Java报错:java.math.BigDecimal cannot be cast to java.lang.String
从数据库取数字,转为string,报错: java.math.BigDecimal cannot be cast to java.lang.String 错误代码 Integer.parseInt(( ...
- java list转json报错_一个fastjson转换JSON字符串的报错排查
今天给一个java类加了几个字段,没想到转为json字符串的时候报错了,定位了一下原因,觉得这种情况遇到的应该不多,又想起来很久没写博客了,于是就把遇到的问题以及定位过程记下来,省了以后遇到的人再花时 ...
- 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 ...
- EasyExcel报错com.alibaba.excel.exception.ExcelGenerateException: java.lang.ExceptionInInitializerError
硅谷课堂项目BUG记录[01] 一.错误描述: 使用EasyExcel,在执行写操作时报错,并未将查询到的数据写到excel中. 二.控制台报错信息 com.alibaba.excel.excepti ...
- 若依报错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 ...
最新文章
- 【Netty】入门Netty官方例子解析(二)Time Server
- @value报错_Excel这都是些啥?#VALUE!、#DIVO!、#NUM!、#REF!、#NULL!、#NA!
- 对quake3源代码的学习与研究初步的计划
- python创意编程比赛-关于举办2019年青岛市青少年创意编程与智能设计大赛的通知...
- linux以太坊开发环境搭建
- 【BLE MIDI】开发 BLE MIDI 硬件电子乐器设备需要遵循的相关规范 ( 资料收集 )
- C++ 的语言杂谈(一)--C++不是新手友好的
- 聚焦2020年财报:进击的恒大汽车,“变态”的智能汽车
- 如何查看系统启动时间-
- 关于OPENCV 访问外部传进来的Mat矩阵元素的问题
- html验证码功能如何实现原理,基于JS实现一个随机生成验证码功能
- spring aop源码分析总结
- 物联网|ZETA技术助力远超抄表实现智能化、精细化
- 用python做头像_教你用python下载和拼接微信好友头像图片
- 计算机启用来宾用户,win10怎么启用来宾账户_win10启用guest来宾账户的教程
- iOS 使用系统相册获取选取图片的名称
- logback之二:输出日志到控制台
- c语言进程管理,OS进程管理模拟(C语言实现)
- status_breakpoint谷歌浏览器如何解决?
- Thymeleaf模板(全程案例详解)