数据传输或存储方面通常采用JSON,今天对AS3中直接保存和转为JSON字符格式后保存进行了测试。

一:XML转JSON方法

对于属性状的XML转JSON可以用以下方式

AS3代码
  1. var object:Object={};   
  2.             var xml:XML=new XML(<xml va="abcd" vb="789" vc="223"/>)   
  3.             for each(var obj:Object in xml.@["*"]){   
  4.                 object[String(obj.name())]=String(obj);   
  5.             }   
  6.             var str:String=JSON.stringify(object);   
  7.             trace(str)//{"vc":"223","va":"abcd","vb":"789"}  

二:入写硬盘测试

我直接使用上面转化出来的JSON复制了1000份进行测试

AS3代码
  1. var xml:XML=new XML(<xml va="abcd" vb="789" vc="223"/>)   
  2.             for(var i:uint;i<1000;i++){   
  3.                 for each(var obj:Object in xml.@["*"]){   
  4.                     object[String(obj.name()+i)]=String(obj);   
  5.                 }   
  6.             }   
  7.             var str:String=JSON.stringify(object);   
  8.             trace(str)   
  9.             var byte:ByteArray=new ByteArray;   
  10.             byte.writeObject(object)   
  11.             WriteFile.getInstance().writeByte("d://byte.txt",byte)//写入封装类   
  12.             WriteFile.getInstance().writeTxt("d://str.txt",str)  

保存后文件大小查看,byte.txt有24K而str.txt却是42K,结果很明显了。

如果把str再写入二进制来保存,文件大小是一样的。