如何在javascript中将数组的javascript映射转换为json对象?

时间:2016-12-08 04:49:57

标签: javascript arrays json jsp

我有一个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"]}

请帮帮我

1 个答案:

答案 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);