[alibaba/fastjson]安卓环境运行解析特定字段问题,希望能看一下

2024-05-22 811 views
4

环境:fastjson:1.2.73 安卓10(测试了这边好几台机子,虚拟机也跑过8的版本)

String str = "{\"cPosDailyShopA\":\"82\",\"sBalWithdrawnA\":\"831.44\",\"cPosMonthShopA\":\"81\",\"cPosDailyRoamA\":\"24\",\"cPosMonthRoamA\":\"24\",\"sPftTotalA\":\"0.00\",\"sPftDailyA\":\"0.00\"}";

上面的所有值,对象里使用BigDecimal进行接收(对象名:Bean)

Bean parse = JSON.parseObject(str, Bean.class);

在安卓环境下,报错, com.alibaba.fastjson.JSONException: Invalid BigInteger 电脑java1.8环境下运行,没问题.

希望能修复

回答

5

你这问题可以先建立一个StringBean对象,里面全是字符串,先将json转成转字符串,然后字符串在手动转BigInteger?

7

你这问题可以先建立一个StringBean对象,里面全是字符串,先将json转成转字符串,然后字符串在手动转BigInteger?

全部使用String是可以接收成功,但是问题是为什么用BigDecimal接收不成功.使用String来接收的时候,会需要额外处理不少getset判空的方法,不像直接用BigDecimal默认赋值陈ZERO,然后生成getset方法来的方便. 而且我使用的是BigDecimal来接收,并没有BigInteger,按理说,报错也应该是BigDecimal报错,不应该是BigInteger对象报错不是么?

5

我用的'com.alibaba:fastjson:1.2.40'版本,也遇到你这样的问题。com.alibaba.fastjson.JSONException: Invalid BigInteger: 100����������������(日志显示问号) 请问最后是怎么解决的。。。我网上没有搜到

1

我用的'com.alibaba:fastjson:1.2.40'版本,也遇到你这样的问题。com.alibaba.fastjson.JSONException: Invalid BigInteger: 100����������������(日志显示问号) 请问最后是怎么解决的。。。我网上没有搜到

我后来还是更换成了安卓的库.看了下源代码里对安卓库似乎做了运行环境的特殊处理