typescript map序列化
时间: 2023-12-28 12:24:50 浏览: 35
在TypeScript中,使用JSON.stringify()方法对Map对象进行序列化时,会发现值始终为{}。这是因为JSON.stringify()方法默认只能序列化简单的数据类型,无法直接序列化Map对象。
为了解决这个问题,可以封装一个序列化工具类来处理Map对象的序列化。下面是一个示例代码:
```typescript
class MapSerializer {
static serialize(map: Map<any, any>): string {
const obj: { [key: string]: any } = {};
map.forEach((value, key) => {
obj[key] = value;
});
return JSON.stringify(obj);
}
}
// 使用示例
const map = new Map<string, string>();
map.set("lzp", "666");
map.set("编程小龙", "666");
console.log("序列化之前");
console.log(map);
const serializedMap = MapSerializer.serialize(map);
console.log("序列化之后");
console.log(serializedMap);
```
这段代码中,我们定义了一个MapSerializer类,其中的serialize()方法接收一个Map对象作为参数,并将其转换为一个普通的对象。然后,我们使用JSON.stringify()方法将该对象序列化为字符串。