首先,我不是专门做前端的,用的时候研究下,目前希望将flex的class instance串行化成为Json以及从Json转换成class instance。
目前已经有比较好的实现,是在as3corelib。代码比较好懂。不过as3corelib只是将json和Object的instance转换,而我的应用中需要转换成具体的class的instance,因此,我hack了代码,扩展好像不容易,很多代码都是private,extends类意义不大。
1、JsonEncoder类。
将282行修改为:
return "{" + '"className":"' + flash.utils.getQualifiedClassName(o) + '"' + (s.length > 0 ? ',' : '') + s + "}";
增加className,标示这个对象是什么类的。
2、JsonDecorder类
在235行增加:
if (key == 'className') {
var className:String=parseValue().toString();
var clazz:Class=getDefinitionByName(className) as Class;
o=new clazz();
} else {
o[key]=parseValue();
}
运行良好,有两点要注意的是:1、我始终将className放在最前面,2:这些持久类的构造方法不要带参数。
欢迎转载,请标明来自:
http://www.blogjava.net/bjwulin/archive/2011/03/17/346500.html
posted on 2011-03-17 23:08
不做浮躁的人 阅读(4304)
评论(1) 编辑 收藏 所属分类:
flex