Map 转为 JSON 要区分两种情况。一种情况是,Map 的键名都是字符串,这时可以选择转为对象 JSON。
map==>obj==>json
function strMapToObj(strMap) {
let obj = Object.create(null);//创建空的对象
for (let [k, v] of strMap) {
obj[k] = v;
}
return obj;
}
function strMapToJson(strMap) {
return JSON.stringify(strMapToObj(strMap));
}
let myMap = new Map().set('yes', true).set('no', false);
console.log(strMapToJson(myMap));
// '{"yes":true,"no":false}'