【HarmonyOS】JSON格式化解析Map数据失败

【关键字】

数据转换、JSON.stringify、Object.fromEntries

【问题背景】

将数组转换成Map对象,然后调用let str = JSON.stringify(newMap),将Map转换成字符串,转换出来的结果是{}

问题代码:

let data = [
          { key: 'where', value: '何地'},
          { key: 'when', value: '何时'},
          { key: 'why', value: '何因'},
       ]
let newMap = new Map<string,string>()
data.forEach((item) => {
        newMap.set(item.key,item.value)
  })
let str = JSON.stringify(newMap)
console.info(str+'newMap')

cke_2414.png

【解决方案】

先用Object.fromEntries将Map转为object再进行转换就可以了 

let data = [
          { key: 'where', value: '何地'},
          { key: 'when', value: '何时'},
          { key: 'why', value: '何因'},
       ]
let newMap = new Map<string,string>()
data.forEach((item) => {
        newMap.set(item.key,item.value)
  })
let str = JSON.stringify(Object.fromEntries(newMap))
console.info(str+'newMap')

cke_10450.png

逆转换可参考Object.entries方法。

【参考文档】

Object.fromEntries() - JavaScript | MDN

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值