Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Convert Map to JSON object in 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'); 

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.

like image 990
nixgadget Avatar asked May 25 '16 12:05

nixgadget


People also ask

Can we convert map to JSON?

We can convert a Map to JSON object using the toJSONString() method(static) of org. json. simple. JSONValue.

Can we convert map to object in JavaScript?

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.


2 Answers

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 } 
like image 84
wolfram77 Avatar answered Sep 22 '22 08:09

wolfram77


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) 
like image 33
Zachary Taylor Avatar answered Sep 22 '22 08:09

Zachary Taylor