HarmonyOS 鸿蒙Next JsonUtil 不支持包含bigInt的数据解析

发布于 1周前 作者 ionicwang 最后一次编辑是 5天前 来自 鸿蒙OS

HarmonyOS 鸿蒙Next JsonUtil 不支持包含bigInt的数据解析

通过http网络请求获取服务端返回的数据时,数据包含较大的整型数据,通过JSON.parse的方法将整型数据转成bigInt类型; 业务有需求将得到的数据转成Jason 以及将Jason 转成自定义的类型实例;使用JsonUtil进行json 转换时报错: cannot serialize a BigInt 1、无法对包含bigInt的Map类型数据转json 2、无法将包含bigInt的json转成自定义类型实例(不丢失精度)

2 回复

参考这个三方库,https://gitee.com/openharmony-tpc/openharmony_tpc_samples/tree/master/json-bigintDemo

通过会议沟通,此问题是大数转换JS通用问题,您已经对字段做特定处理进行规避,后续预期使用三方库解决此类功能问题

在HarmonyOS鸿蒙系统中,JsonUtil作为常用的JSON处理工具,其默认实现可能不支持直接解析包含bigInt(大整数)的数据类型。这是因为标准的JSON解析器通常会将数值解析为标准的JavaScript数字类型,而JavaScript的数字类型无法精确表示超出其范围的大整数。

要解决这个问题,你可以考虑以下几种方法:

  1. 字符串化处理:在序列化JSON时,将bigInt类型的数据转换为字符串。在反序列化时,再将字符串转换回bigInt。这种方法需要你在数据处理过程中添加额外的转换逻辑。

  2. 使用第三方库:寻找支持bigInt解析的第三方JSON库。这些库可能提供了对bigInt的内置支持,可以更方便地处理大整数数据。

  3. 自定义解析器:如果你对JsonUtil的实现有深入了解,可以尝试自定义一个支持bigInt的解析器。这需要较高的编程水平和对HarmonyOS鸿蒙系统API的熟悉程度。

以上方法仅供参考,具体实现可能需要根据你的实际需求和项目环境进行调整。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html。

回到顶部