所以我的应用程序中有一些对象,Map<number,any[]>
作为它们的属性之一。目前,我正在使用localForage
进行持久性,当保存地图时,它会将其存储在使用Android或Windows(模拟浏览器(的ionic serve
中,但不能使用ios。它在我的安卓设备中也不起作用。
这是测试我的观点的代码示例:
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))
);
在安卓和Windows(浏览器模拟(上,它显示地图很好,在ios上则不然。不同之处在于ios使用webSQL数据库,而其他使用indexedDB数据库。
我需要序列化它吗?有没有更好的方法来存储解决此问题的数据?
所以我找到了解决问题的方法,用以下内容序列化Map
对象:
JSON.stringify(Array.from( myMap.entries()));
然后用以下命令反序列化它:
new Map<any,any>(JSON.parse(myMapFromStorage));