C++ 大整型转换到ArkTS number 丢精度

服务端会下发orderId等长整型,可能达20多位,C++接口获取到数据,转换给ArkTS,丢失精度

例如:

std::string jsonString = R"({

“big_integer”: 12345678901234567890

})";

使用aki,转换到ArkTS这边,然后使用JSON.parse解析出json串

发现big_integer值不对

HarmonyOS
2024-12-27 15:28:02
805浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
Heiang

JSON 标准并不支持 bigint 数据类型,当尝试解析 bigint 数据时,会导致精度丢失。可以考虑将 bigint 转换为字符串进行存储和传输,或者在解析 JSON 后手动将数字类型转换为 bigint 类型。

interface Model {
  uid: bigint;
}
let returnResult: Model = JSON.parse('{"uid": "375980350743824932"}') as Model;
const resultString = `{"uid": "${returnResult.uid.toString()}"}`;
console.log(resultString);
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
分享
微博
QQ
微信
回复
2024-12-27 17:27:54


相关问题
如何实现ArkTSC/C++的数组转换
1809浏览 • 1回复 待解决
如何实现ArkTSC/C++的HashMap转换
2188浏览 • 0回复 待解决
HarmonyOS JSON解析number丢失精度
1280浏览 • 1回复 待解决
HarmonyOS number字段精度丢失问题
1574浏览 • 1回复 待解决
HarmonyOS number精度和位数限制问题
992浏览 • 1回复 待解决
HarmonyOS C++ArkTS交互
1022浏览 • 1回复 待解决
如何在C/C++ 创建ArkTS的对象
3490浏览 • 1回复 待解决
HarmonyOS ArkTSC/C++的交互
1803浏览 • 1回复 待解决
HarmonyOS JSON解析对于精度数字失真
678浏览 • 1回复 待解决
C++ 如何获取操作 Arkts 实例
1764浏览 • 1回复 待解决
c/c++层主动调用ArkTS存在问题
1677浏览 • 1回复 待解决
ArkTS/js怎样与C++进行交互?
1406浏览 • 1回复 待解决
C++调用ArkTS 定义的方法
3413浏览 • 1回复 待解决
HarmonyOS ArkTsC++实时通信
1044浏览 • 1回复 待解决
ArkTSC++之间的交互
2565浏览 • 1回复 待解决
ArkTSC++互相直接调用
4233浏览 • 1回复 待解决
ArkTS层通过接口访问C++层对象
1262浏览 • 1回复 待解决
ArkTS对象绑定的C++对象如何回收?
1713浏览 • 1回复 待解决
ArkTS调用C++类中的成员函数
2324浏览 • 1回复 待解决
提问
该提问已有2人参与 ,帮助了13人