JSON.stringify(map)返回{}

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

解决方法:把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
Last Updated: 12/28/2023, 5:03:22 PM