fastjson Android 反序列化 泛型

2hh7jdfx  于 2021-11-27  发布在  Java
关注(0)|答案(7)|浏览(426)

背景:我尝试使用泛型来简化项目中的解析Json,项目中的总返回值类为 ResultMsgBean,他的字段resultInfo是每次接口具体的值。可能为list,可能为pojo。我尝试采用了TypeReference来解决这个问题。

问题:出现了外部Json解析成功,但是解析的实体类在使用中,就会出现JSONObject to javabean的异常.
虽然是整体全部使用TypeReference,但是网上说会有缓存类型的问题,所以使用的是json字符来本地测试,只有一次转换.

在测试过程中发现,当我手动明确指定类型的时候就不会有问题,使用泛型,则TypeReference.getType()没有获取到具体的类型,导致转换失败,实体类内部成为一个JSONObject,没有变成javaBean.希望能够得到帮助~

wj8zmpe1

wj8zmpe12#

@wenshao 额,首先这个代码有点问题,是通不过编译的,

我根据下面的例子,可能上面代码的意思是加一个">"到 “T>”后面,但是,需要class为参数的方法,实在是找不到 ~~,我这边的源码是这样的

例子中自定义的Response没有Class参数,TypeReference也无法接收Class参数....

k10s72fa

k10s72fa3#

@wenshao Android版源码和javaWeb版不一样啊,这个TypeReference Android版不支持泛型转换???? 为什么文档说1.1.49就可以了
这个是1.2.9的源码,上面的是1.1.54的源码

chhkpiq4

chhkpiq44#

而且在泛型是List的情况下,应该是如何使用class来传导呢。

qlckcl4x

qlckcl4x5#

目前android版本的TypeReference不支持传入参数,我尽快补上并发布新版哈

km0tfn4u

km0tfn4u6#

@wenshao 我在使用最新版的1.55的时候,发现没有支持传入参数. 我苦等好久~

iklwldmw

iklwldmw7#

@wenshao 请问android版本的TypeReference 入参什么时候能补上呢。

相关问题