Gson解析Json 兼容性问题

在开发项目时,遇到Gson在不同Android设备上解析Json的兼容性问题。在Galaxy S4上,Gson能正常解析JsonArray到ArrayList,但在HTC 2.3.7设备上出现类型转换失败。解决方案是将ArrayList替换为LinkedList。然而,进一步的问题是,当JsonArray结构依赖外部属性时,Gson在HTC设备上无法正确识别。尝试使用JSONObject等其他类型无效,而Fastjson能够成功解析。但Fastjson在处理二维数组时遇到困难,Gson通过LinkedList<LinkedList<MyEntity>>方式可以解决。最终采用混合使用Fastjson解析部分结构,Gson解析二维数组的方法解决了问题。
摘要由CSDN通过智能技术生成




最近在做项目,在galaxy S4上,使用gson解析json数据完全没问题,将jsonarray 成功解析到 ArrayList里面,可是在htc 2.3.7的机器(htc z710t)上面,就是解析不了,总是报错,类型转换不成功,最后发现,需要将ArrayList 改为LinkedList就可以解决这个蛋疼的问题。

但是接着,好一个更蛋疼的问题。我现在的json数据中,包含一个jsonarray,这个jsonarray具体的数据结构,是由外层的一个属性值指定的,为了解析这个结构,我把那个jsonarray直接映射为一个JSONArray 对象,然后根据属性,二次解析这个json对象,在S4上没问题,可是,在htc的上面,死活通过不了,类型识别不了,换成jsonobject什么的都不行。最后,测试了 阿里巴巴的fastjson,在htc上,可以正常解析数据,得以解决。但是在使用fastjson的时候,又遇到另外一个蛋疼的问题。不知道如何利用fastjson解析二维数组型的数据,我这边现在有个表格的数据返回,有多个行,一个行里有多个数据,是一个二维数组的形式,用fastjson无法下手,但是Gson 可以使用LinkedList<:LinkedList<MyEntity>>来嵌套,表达这种类型数据,而尝试fastjson,却无法如此嵌套解决。

最后,使用折衷的方案,用fastjo

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值