如何在 Ionic 应用程序上保留 Typescript Map

How to persist a Typescript Map on a Ionic application

所以我的应用程序中有一些对象的属性之一是 Map<number,any[]>。 目前我正在使用 localForage 进行持久化,当保存地图时,它使用 android 或 windows (浏览器模拟)将其很好地存储在 ionic serve 中,但不是ios 个。 它在我的 android 设备上也不起作用。

这是测试我观点的代码示例:

let myMap: Map<number,any[]> = new Map();
myMap.set(1,['banana','pimento']);
console.log(myMap);
localForage.config({});
localForage.setItem("myMap",myMap)
 .then(()=>localForage.getItem("myMap")
  .then(map => console.log(map))
);

在 android 和 windows(浏览器模拟)上它显示地图很好,在 ios 上则不然。区别在于 ios 一个使用 webSQL 数据库,而其他使用 indexedDB。

需要序列化吗?有没有更好的存储数据的方法来解决这个问题?

所以我找到了解决我的问题的方法,用以下方法序列化 Map 对象:

JSON.stringify(Array.from( myMap.entries()));

然后反序列化:

new Map<any,any>(JSON.parse(myMapFromStorage));