JSON.stringify(map)返回{}
fivemin 12/6/2023 JavaScript
今天将Map对象转字符串保存到localStorage中实现本地存储的时候,发现调用JSON.stringify(map)返回了{}
测试代码如下:
const map = new Map();
map.set("user","test");
localStorage.setItem('userInfo',JSON.stringify(map));
1
2
3
2
3
解决方法:把map转为对象,然后再调用JSON.stringify()方法。
mapToJson(map) {
var obj = Object.create(null);
map.keys().forEach(key=>{
obj[key] = map.get(key);
});
return JSON.stringify(obj);
}
1
2
3
4
5
6
7
2
3
4
5
6
7