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
448浏览 • 1回复 待解决
HarmonyOS JSON.stringify一个hasmap的问题
158浏览 • 1回复 待解决
HarmonyOS 键盘输入不能输入负数
17浏览 • 1回复 待解决
鸿蒙有输入输出管理吗
7353浏览 • 2回复 待解决
napi里面,相同输入输出不一致
1686浏览 • 1回复 待解决
如何将JSON字符串转Class对象数组
494浏览 • 1回复 待解决