[alibaba/fastjson]android版解析同样数据时,有时解析正确有时错误

2025-11-24 22 views
5

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

回答

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

问题重现,尽快修复