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
浏览
收藏 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);
分享
微博
QQ
微信
回复
2024-12-27 17:27:54
相关问题
如何实现ArkTSC/C++的数组转换
1236浏览 • 1回复 待解决
如何实现ArkTSC/C++的HashMap转换
1617浏览 • 0回复 待解决
HarmonyOS JSON解析number丢失精度
810浏览 • 1回复 待解决
HarmonyOS number字段精度丢失问题
1178浏览 • 1回复 待解决
HarmonyOS number精度和位数限制问题
458浏览 • 1回复 待解决
HarmonyOS ArkTSC/C++的交互
1231浏览 • 1回复 待解决
HarmonyOS C++ArkTS交互
491浏览 • 1回复 待解决
如何在C/C++ 创建ArkTS的对象
2867浏览 • 1回复 待解决
c/c++层主动调用ArkTS存在问题
1137浏览 • 1回复 待解决
C++ 如何获取操作 Arkts 实例
1344浏览 • 1回复 待解决
HarmonyOS ArkTsC++实时通信
646浏览 • 1回复 待解决
ArkTSC++之间的交互
2004浏览 • 1回复 待解决
C++调用ArkTS 定义的方法
2793浏览 • 1回复 待解决
ArkTSC++互相直接调用
3034浏览 • 1回复 待解决
HarmonyOS JSON解析对于精度数字失真
312浏览 • 1回复 待解决
ArkTS/js怎样与C++进行交互?
751浏览 • 1回复 待解决
如何实现ArkTSC/C++的对象传递
1222浏览 • 1回复 待解决
C++同步调ArkTS里面的方法
1425浏览 • 1回复 待解决