HarmonyOS json数据如何转成map

以下代码

for (let [key, value] of Object.entries(jsonData)) {   this.mMap.set(key, value);  }

这一句,Harmony OS不支持这么写,有其他实现方式吗?

public loadFile() : void { 
  let buf = new ArrayBuffer(this.MAX_SDK_DATA_SIZE); 
  let file = fs.openSync(this.context.filesDir + '/sdkdata.dat', fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE); 
  let objIn: fs.Stream | null = null; 
  try { 
  let stream = fs.createStreamSync(this.context.filesDir + '/sdkdata.dat', "r+"); 
  let readOption: ReadOptions = { 
    offset: 5, 
    length: 5 
  }; 
  let num = stream.readSync(buf, readOption); 
  let buf1 = buffer.from(buf, 0, num); 
  const jsonData = buf1.toJSON(); 
  // 将解析后的数据存储到 Map 中 
  for (let [key, value] of Object.entries(jsonData)) { 
  this.mMap.set(key, value); 
} 
} catch (error) { 
  console.error("SdkData load failed", error); 
} finally { 
}
HarmonyOS
2024-08-02 18:17:42
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
椰椰蓉螈

JSON转换Map:如果是JSON字符串必须使用JSON.parse()转为对象;

再使用 Object.entries() 接受对象返回二维数组;

let arr = Object.entries({"name":"张三","age":"18","address":"xian"}); 
console.log(arr) 
//调用Map()构造函数 
let arr = Object.entries({"name":"张三","age":"18","address":"xian"}); 
let map = new Map(arr); 
console.log(map); 
//JSON转换Map: 
let jsonRecord:Record<string,Object> = JSON.parse('{ "0": {"num": 1}, "1": {"num": 2} }') as Record<string,Object>; 
let map:Map<string,Object> = new Map(); 
Object.keys(jsonRecord).forEach((key) => { 
  console.log(key + ': ' + jsonRecord[key]); 
  map.set(key,jsonRecord[key]); 
});
分享
微博
QQ
微信
回复
2024-08-02 22:13:12
相关问题
HarmonyOS JSON怎么转Map
140浏览 • 1回复 待解决
如何实现MapJSON字符串
1007浏览 • 1回复 待解决
HarmonyOS JSON中的map结构如何序列化
326浏览 • 1回复 待解决
如何将js传的map转成c++的对象
600浏览 • 1回复 待解决
如何JSON字符串转为Map
225浏览 • 1回复 待解决
如何在ArkTS中实现JSONMap的转换?
2701浏览 • 1回复 待解决
Map类型怎么转换成Json string
2048浏览 • 1回复 待解决
MapJSON,哪位大佬知道怎么解决啊?
1639浏览 • 0回复 待解决
HarmonyOS 如何把对象转成HasMap
465浏览 • 2回复 待解决
HarmonyOS HasMap 如何转成对象
111浏览 • 1回复 待解决
ArkTS侧与Native侧如何进行map数据交互
2099浏览 • 1回复 待解决
如何JSON数据进行解析优化
649浏览 • 1回复 待解决
HarmonyOS http请求的JSON数据定义问题
98浏览 • 1回复 待解决