我有一个 javascript MAP 对象,它以字符串形式保存键,以 javascript 数组形式保存值,每个数组在其中保存一组字符串。我想将数组映射转换为 javascript 中的 json 对象。
这是我试过的代码
函数 addRole() {
var jsonObjectOfMap={};
subMenuSelectedIdMap.forEach(function(items,key,subMenuSelectedIdMap){
jsonObjectOfMap[key]=JSON.stringify(items);
});
alert(JSON.stringify(jsonObjectOfMap));
我得到的 json 对象是这样的 {"1004":[1005,1006,1023]","1007":[1008,1053]"}
但是这个 json 格式对象是否有效,如果我想要它的格式,我必须做什么: {"1004":["1005","1006","1023"]","1007":["1008","1053"]}
请帮帮我
最佳答案
如果最内层的值都是数字,并且您希望它们在最终结果中作为字符串,则必须将每个数字单独转换为字符串。
您可以使用 .map()
对每个 items
进行另一个循环来做到这一点或者调用String()
或 .toString()
对于每个数字:
subMenuSelectedIdMap.forEach(function (items, key, subMenuSelectedIdMap){
jsonObjectOfMap[key] = items.map(function (item) {
return String(item); // or `return item.toString();`
});
});
可选地,由于 String()
只接受一个参数(.map()
传递的其他两个参数被忽略),items< 的循环
可以缩短为:
jsonObjectOfMap[key] = items.map(String);
关于javascript - 如何将数组的 javascript 映射转换为 javascript 中的 json 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41031985/