fastjson: 1.1.58.android
android:4.4.4
调用方式:JSON.parseObject(json, mType)
我们查看了会谈返回的json数据, fastjson解析错误与正确的时候,json完全一致。
type为:new TypeReference<A<B>>() {}
解析错误时,成功解析A对象,A下面的B只解析成JSONObject
Q
[alibaba/fastjson]android版解析同样数据时,有时解析正确有时错误
5
A
回答
3
我也遇到了,和上面的都一样,我的是android 6.0系统。
3
能否构造一个testcase,thx @su1216 @AlexSmille
5
@kimmking 即使构造了也不知道什么时候会复现。现在的数据结构不方便贴出来,抱歉
5
能帮忙提供更多信息么?这样我不好诊断
4
有一种场景,应该可以复现该问题。 假设有类
class Generic<T>{
T test;
}
解析时使用方法应该类似:JSON.parseObject(json, new TypeReference<Generic<A>>(){})
但,当用法不对时如:
JSON.parseObject(json, new TypeReference<Generic>(){})
没有给Generic指定泛型类型,则此时其test字段为缺省的JSONObject,关键在于会将这次对应Generic类的解析器缓存起来。
进而导致其他地方即使传递了泛型,JSON.parseObject(json, new TypeReference<Generic<A>>(){}),也会解析错误
0
@yrom 我就是这种情况出现的问题,不过我没有用TypeReference,是用的反射获取的泛型Type,结果一样的,不传的时候会影响下一次的解析
7
经过测试。发现android版本仍然存在这个问题。但是纯java版似乎是已经修复了这个问题。不知道能不能对Android版本也进行修复一下呢?
8
Jumeiyoupin has fixed this issue.
5
问题重现,尽快修复
0