JS之Map序列化与反序列化

以下是 Map 正确序列化与反序列化的完整代码示例,包含核心转换逻辑和验证步骤:

// 1. 定义一个待序列化的 Map(包含不同类型的键值)
const myMap = new Map([
  ['name', '豆包'],
  [123, '数字键'],
  [true, '布尔值键'],
  [{ id: 1 }, '对象作为键'] // 注意:对象作为 Map 键时,反序列化后会变成新对象,无法完全匹配原键
]);

// 2. Map 序列化:先转为数组,再用 JSON.stringify
const serialized = JSON.stringify(Array.from(myMap));
console.log('序列化结果:', serialized);
// 输出:[["name","豆包"],[123,"数字键"],[true,"布尔值键"],[{"id":1},"对象作为键"]]

// 3. Map 反序列化:先 JSON.parse 转为数组,再用 Map 构造函数恢复
const deserializedArr = JSON.parse(serialized);
const restoredMap = new Map(deserializedArr);
console.log('反序列化后的值:', restoredMap.get('name')); // 输出:豆包
console.log('反序列化后的值:', restoredMap.get(123)); // 输出:数字键

 

posted @ 2025-09-17 16:05  罗毅豪  阅读(24)  评论(0)    收藏  举报