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

标签 javascript arrays json jsp

我有一个 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/

相关文章:

javascript - 无法读取 Constructor.render 处未定义的属性 'code' (Photo.js :14)

在c中计算数组中的相对位置

java - 为什么 Jackson 中的 JsonGeneratorDelegate 没有实现 setPrettyPrinter() ?

jquery wcf数据服务返回atom+xml而不是json

javascript - jQuery : window is not defined 的 Buster.js 依赖性错误

javascript - 在 Node 运行时执行服务器端代码

javascript - 在vanilla javascript中反转多个单词

mysql - Rails 4.0 将数组和字符串保存到单列

python - 创建一个具有预先确定的均值和标准差的数组

iphone - 迭代嵌套 JSON 数组 iPhone