我有一个多维数组,我想序列化它,然后使用SharedObjects保存它。我尝试了很多事情,但是每次都有问题。
JSON:不能带有类型。
ByteArray:结果不是字符串,则SharedObject不想保存它。
可能SharedObjects不是解决方案的一部分。
所以我的问题是:是否有一个简单的解决方案将一个数组保存在磁盘上并检索该数组?
谢谢。
您需要使用flash.net.registerClassAlias。
flash.net.registerClassAlias
因此,如果我有这样的课程:
package com { public class Bob { public var myArray:Array; } }
我可以这样做:
registerClassAlias("com.Bob", Bob);
然后,您可以将Bob类对象保存到共享对象中(或者再次检索它们)
完整示例:
//register the class - you only need to do this once in your class registerClassAlias("com.Bob", Bob);
//Lets save a Bob instance into a shared object var bob:Bob = new Bob(); bob.myArray = ["blah","blah","blah"]; var bobSO:SharedObject = SharedObject.getLocal("Bob"); bobSO.data.bob = new Bob(); bobSO.flush();
//now at a later time, let's retrieve it var bobInstance:Bob; var bobSO:SharedObject = SharedObject.getLocal("Bob"); if (bobSO.size > 0 && bobSO.data.bob && bobSO.data.bob != undefined) { bobInstance = bobSO.data.bob; }
请记住,您将需要注册所有使用的类(如果数组中存储了不同的类)。