0

所以我的应用程序中有一些对象Map<number,any[]>,它们的属性之一是 a。目前我正在使用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 数据库。

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

4

1 回答 1

1

所以我找到了一个解决我的问题的方法来序列化Map对象:

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

然后反序列化它:

new Map<any,any>(JSON.parse(myMapFromStorage));
于 2017-04-11T09:46:30.680 回答