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');
Now what I want to do is create a JSON object from the key in the map.
It has to be,
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.
We can convert a Map to JSON object using the toJSONString() method(static) of org. json. simple. JSONValue.
To convert a Map to an object, call the Object. fromEntries() method passing it the Map as a parameter, e.g. const obj = Object. fromEntries(map) . The Object.
Given in MDN, fromEntries()
is available since Node v12:
const map1 = new Map([ ['foo', 'bar'], ['baz', 42] ]); const obj = Object.fromEntries(map1); // { foo: 'bar', baz: 42 }
For converting object back to map:
const map2 = new Map(Object.entries(obj)); // Map(2) { 'foo' => 'bar', 'baz' => 42 }
I hope this function is self-explanatory enough. This is what I used to do the job.
/* * Turn the map<String, Object> to an Object so it can be converted to JSON */ function mapToObj(inputMap) { let obj = {}; inputMap.forEach(function(value, key){ obj[key] = value }); return obj; } JSON.stringify(returnedObject)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With