JS之Map序列化與反序列化
以下是 Map 正確序列化與反序列化的完整代碼示例,包含核心轉(zhuǎn)換邏輯和驗證步驟:
// 1. 定義一個待序列化的 Map(包含不同類型的鍵值) const myMap = new Map([ ['name', '豆包'], [123, '數(shù)字鍵'], [true, '布爾值鍵'], [{ id: 1 }, '對象作為鍵'] // 注意:對象作為 Map 鍵時,反序列化后會變成新對象,無法完全匹配原鍵 ]); // 2. Map 序列化:先轉(zhuǎn)為數(shù)組,再用 JSON.stringify const serialized = JSON.stringify(Array.from(myMap)); console.log('序列化結(jié)果:', serialized); // 輸出:[["name","豆包"],[123,"數(shù)字鍵"],[true,"布爾值鍵"],[{"id":1},"對象作為鍵"]] // 3. Map 反序列化:先 JSON.parse 轉(zhuǎn)為數(shù)組,再用 Map 構(gòu)造函數(shù)恢復(fù) const deserializedArr = JSON.parse(serialized); const restoredMap = new Map(deserializedArr); console.log('反序列化后的值:', restoredMap.get('name')); // 輸出:豆包 console.log('反序列化后的值:', restoredMap.get(123)); // 輸出:數(shù)字鍵

浙公網(wǎng)安備 33010602011771號