JSON.stringify输入多层数组不能正确输出

let map = new Map<string,string>() 
map.set('id','24') 
map.set('name','2') 
 
let editNameArray: Map<string,string>[] = [] 
editNameArray.push(map) 
 
let temp = JSON.stringify(editNameArray)

输出temp为[{}]。为什么会这样,想要用jsonstring要怎么处理?

HarmonyOS
2024-08-03 11:32:59
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
开心的兔子

可以使用以下方式:

let map = new Map<string,string>() 
map.set('id','24') 
map.set('name','2') 
let editNameArray:Map<string,string>[] = [] 
let result:Record<string,object>[] = [] 
editNameArray.push(map); 
//利用Record做JSON.stringify解析 
let jsonObject:Record<string,Object> = {}; 
editNameArray.forEach((value,key) => { 
  if (key != undefined && value != undefined) { 
    //第二层遍历 
    if (value instanceof Map) { 
      let InJsonObject:Record<string,Object> = {}; 
      value.forEach((value,key) => { 
        if (key != undefined && value != undefined) { 
          InJsonObject[key] = value; 
        } 
      }) 
      result.push(InJsonObject) 
    } 
  } 
}) 
let jsonString:string = JSON.stringify(result); 
console.debug(`JSON字符串:${jsonString}`)

JSON转换是没办法转换成结果包含\符号的,所以需要对返回的 jsonString:string做额外处理,可以使用如下代码进行结果字符串替换:

jsonString = jsonString.replace(new RegExp('"',"xx"),'\\"')
分享
微博
QQ
微信
回复
2024-08-03 17:22:18
相关问题
HarmonyOS 遇到JSON.stringify crash
321浏览 • 1回复 待解决
鸿蒙有输入输出管理吗
7251浏览 • 2回复 待解决
napi里面,相同输入输出不一致
1608浏览 • 1回复 待解决
如何将JSON字符串转Class对象数组
382浏览 • 1回复 待解决
HarmonyOS 自定义键盘不能顶起输入
244浏览 • 1回复 待解决
har 包多层依赖打包问题咨询
162浏览 • 1回复 待解决