JSON.stringify(map)返回{}

今天将Map对象转字符串保存到localStorage中实现本地存储的时候,发现调用JSON.stringify(map)返回了{}

测试代码如下:

const map = new Map();
map.set("user","test");
localStorage.setItem('userInfo',JSON.stringify(map));

解决方法:把map转为对象,然后再调用JSON.stringify()方法。

mapToJson(map) {var obj = Object.create(null);map.keys().forEach(key=>{obj[key] = map.get(key);});return JSON.stringify(obj);
}