Flex反射得到属性和属性的值
发布时间:2020-12-15 03:59:37 所属栏目:百科 来源:网络整理
导读:? ?今天要写一个生成json的方法,目的是将VO对象中的所有公共属性和值转换成一个json对象,这个类中20多个属性,手动拼的话,是个体力活,并且有其它的对象也要转成json,还要手动拼,脑袋里最先想到的就是反射。 ? ? ? ?我们知道,在java中,通过反射可以得
? ?今天要写一个生成json的方法,目的是将VO对象中的所有公共属性和值转换成一个json对象,这个类中20多个属性,手动拼的话,是个体力活,并且有其它的对象也要转成json,还要手动拼,脑袋里最先想到的就是反射。 ? ? ? ?我们知道,在java中,通过反射可以得到一个类中的所有信息,属性、方法、接口、注解等等,那么在flex中是不是也是如此呢? ? ? ? ?随后google之,锁定了describeType方法,这是一个flash.utils下的公共方法,通过它也可以达到java中类似的效果。
? ? ? ?下表描述了由?
? ? ? ?针对我的需求,我使用第一种方式,获得它返回的variable标签,代码如下:
public static function getOneJsonObject(obj:Object):String { if(obj == null) { return ""; } var jsonInfo:String = "{"; // 反射出传入对象的属性 var properties:XMLList = describeType(obj).variable; for each(var propertyInfo:XML in properties) { var propertyName:String = propertyInfo.@name; jsonInfo += """ + propertyName + "":"" + obj[propertyName] + "","; } jsonInfo = jsonInfo.substring(0,jsonInfo.length - 1); jsonInfo += "}" return jsonInfo; } ? ?经过实验,describeType不能获取[Bindable]的属性,这样就可以生成一个传入对象的json字符串了。如果想要得到类其它信息,就更换variable标签即可,对这个方法的使用详见官方API。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |