如何实现ArkTS与C/C++的HashMap转换?
实现ArkTS的HashMap转至Native侧。
HarmonyOS
赞
收藏 0
回答 1
待解决
相关问题
如何实现ArkTS与C/C++的数组转换
2266浏览 • 1回复 待解决
ArkTS 中的 HashMap 对象传给 C++ 层,如何转换?
1370浏览 • 1回复 待解决
如何实现ArkTS与C/C++的对象传递
2236浏览 • 1回复 待解决
HarmonyOS ArkTS与C/C++的交互
2290浏览 • 1回复 待解决
ArkTS与Native(C/C++/Rust)通过什么方式实现调用交互
3635浏览 • 1回复 待解决
ArkTS与C++互相直接调用
5766浏览 • 1回复 待解决
如何在C/C++ 创建ArkTS的对象
3905浏览 • 1回复 待解决
如何通过AKI三方库实现ArkTS与C/C++之间的跨语言调用
5523浏览 • 1回复 待解决
HarmonyOS ArkTS如何调C++的api,或C++如何调用ArkTS的api
1449浏览 • 1回复 待解决
ArkTS/js怎样与C++进行交互?
1987浏览 • 1回复 待解决
C++ 大整型转换到ArkTS number 丢精度
1211浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何使用HarmonyOS Node-API实现ArkTS与C/C++的跨语言交互?
1406浏览 • 1回复 待解决
HarmonyOS 调用顺序app ArkTS -> app C++ -> lib C++ -> lib ArkTS -> lib C++,在lib C++ -> lib ArkTS -> lib C+.....+这个流程中不会触发lib的Init方法导致ArkTS最终无法调用到lib C++
1360浏览 • 1回复 待解决
C/C++实现的开源mqtt库如何移植到native c++工程中?
4808浏览 • 1回复 待解决
c/c++层主动调用ArkTS存在问题
1993浏览 • 1回复 待解决
HarmonyOS ArkTS和c++ map数据结构转换最佳实践
1711浏览 • 1回复 待解决
C++ 如何获取操作 Arkts 实例
2021浏览 • 1回复 待解决
C++调用ArkTS 定义的方法
4053浏览 • 1回复 待解决
ArkTS和C++之间的交互
3454浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在C/C++与ArkTS之间进行错误对象的跨语言传递?
1202浏览 • 1回复 待解决
HarmonyOS C++和ArkTS交互
1431浏览 • 1回复 待解决
N-API接口实现ArkTS/TS/JS和C/C++之间的交互
3619浏览 • 1回复 待解决
ArkTS对象绑定的C++对象如何回收?
2007浏览 • 1回复 待解决
如何修改C++版本?C++支持情况?
2783浏览 • 1回复 待解决
HarmonyOS ArkTs和C++实时通信
1384浏览 • 1回复 待解决
方案一:传递数组将HashMap的key、value作为数组取出,将两个数组传递至native侧并组装成Map。
ArkTS侧
Native侧
方案二:传递JSON 将HashMap转为Json数据传至native侧,在native侧反序列化用Map承接。
ArkTS侧转Json
1、JSON.stringify不支持对HashMap操作,需要先将其转成Record
2、然后使用JSON.stringify序列化
Native侧
c++没有直接反序列化的接口,需要使用三方库。
本demo采用lycium交叉编译工具编译json三方库。参考
测试数据:
方案对比:
针对100000条<string,string>类型的数据,两种方案耗时对比如下:(单位:纳秒)
两者耗时相差不大,方案一传递数组略微耗时少一点。
值得考虑的是方案一对于比较复杂的数据,例如value类型也是HashMap或者Array不太适用,需要在native侧多封装一层针对napi_value为复杂类型的处理,代码量略大。