我有一个javascript MAP对象,它将键作为字符串保存,值作为javascript数组,每个数组都包含一组字符串。我想在javascript中将数组映射转换为json对象。
这是我试过的代码
function 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]&#34 ;}
但是这个json格式对象是有效的,如果我想要它的格式,我需要做什么: 的 {" 1004":[" 1005"" 1006"" 1023"]"" 1007":[" 1008"" 1053"]}
请帮帮我
答案 0 :(得分:0)
如果最内部的值都是数字,并且您希望它们在最终结果中作为字符串,则您必须将每个数字分别转换为字符串。
您可以使用.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);