在Javascript中将Map转换为JSON对象 [英] Convert Map to JSON object in Javascript

查看:113
本文介绍了在Javascript中将Map转换为JSON对象的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

所以我得到了以下 javascript,其中包含一个键/值对来将嵌套路径映射到目录.

So Ive got the following javascript which contains a key/value pair to map a nested path to a directory.

function createPaths(aliases, propName, path) {
    aliases.set(propName, path);
}

map = new Map();

createPaths(map, 'paths.aliases.server.entry', 'src/test');
createPaths(map, 'paths.aliases.dist.entry', 'dist/test');

现在我想做的是从地图中的键创建一个 JSON 对象.

Now what I want to do is create a JSON object from the key in the map.

必须的,

paths: {
  aliases: {
    server: {
      entry: 'src/test'
    },
    dist: {
      entry: 'dist/test'
    }
  }
}

不确定是否有开箱即用的方法来做到这一点.任何帮助表示赞赏.

Not sure if there is an out of a box way to do this. Any help is appreciated.

推荐答案

您可以遍历地图和键并分配值

You could loop over the map and over the keys and assign the value

function createPaths(aliases, propName, path) {
    aliases.set(propName, path);
}

var map = new Map(),
    object = {};

createPaths(map, 'paths.aliases.server.entry', 'src/test');
createPaths(map, 'paths.aliases.dist.entry', 'dist/test');

map.forEach((value, key) => {
    var keys = key.split('.'),
        last = keys.pop();
    keys.reduce((r, a) => r[a] = r[a] || {}, object)[last] = value;
});

console.log(object);

这篇关于在Javascript中将Map转换为JSON对象的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆