【发布时间】:2013-02-08 08:22:49
【问题描述】:
如何为任何对象创建 JSON 文件并将其保存在磁盘上。几天后找回来?
【问题讨论】:
标签: actionscript-3 apache-flex flex4.6 flexjson
如何为任何对象创建 JSON 文件并将其保存在磁盘上。几天后找回来?
【问题讨论】:
标签: actionscript-3 apache-flex flex4.6 flexjson
写入共享对象
var so:SharedObject = SharedObject.getLocal("mySharedObject");
so.data.storedJSON = myJSON;
so.flush();
在别处取回它
var so:SharedObject = SharedObject.getLocal("mySharedObject");
myJSON = so.data.storedJSON;
转换为字节数组
保存
阅读此文档:registerClassAlias
registerClassAlias("com.myDomain", MyClass);
var myClass:MyClass = new MyClass();
var ba:ByteArray = new ByteArray();
ba.writeObject(myClass);
so.data.byteArray = ba;
ba.position = 0;
阅读
myClass = so.data.byteArray.readObject();
【讨论】:
使用共享对象。阅读他们here。
【讨论】:
JSON.serialize()一个DisplayObject,这很正常。它们包含过多的链接,如果您保存然后加载 DisplayObject,则会失去数据完整性。所以,你有另一个问题,解决方案是IExternalizable,它需要很多代码,但可以让你保存整个数据结构,然后逐个对象地恢复它。