AS3 XML 转JSON

没有看到现成的,自己用递归算法写了一个,发现json的大小没有小到多少,还把注释和换行都去掉了。还是用xml吧。

 

 private function xmltoObject(xml:XML):Object
  {
   var obj = new Object();
   var ls:XMLList = xml.children();
   var atts:XMLList = xml.attributes();
   
   for each (var att:XML  in atts)
   {
    obj[att.name().toString()]= att.toString();
   }
   
   if(ls.length() > 0)
   {
    for each(var node:XML in ls)
    {
     var objsub:Object = xmltoObject(node);
     var tmp:Object = obj[node.name()];
     if(tmp==null)
     {
      obj[node.name()]=objsub;
     }
     else if(tmp is Array)
     {
      (tmp as Array).push(objsub);
     }
     else
     {
      obj[node.name()]=new Array(tmp,objsub);
     }
    }
   }
   return obj;
  }
  
  protected function ConvertXMLToJSON():void {
   
   var f:File = File.documentsDirectory.resolvePath("file:///D|/item.xml");
   var fs:FileStream = new FileStream();
   fs.open(f,FileMode.READ);
   fs.position=0;
   var str:String = fs.readUTFBytes(fs.bytesAvailable);
   fs.close();
   
   
   var xml:XML = new XML(str);
   var xmlobj:Object = xmltoObject(xml);
   var js:JSONEncoder = new JSONEncoder(xmlobj);
    
   var strjson:String = js.getString();
 
   var f2:File = File.documentsDirectory.resolvePath("file:///D|/itemjson.json");
   var fs2:FileStream =new FileStream();
   fs2.open(f2, FileMode.WRITE);
   fs2.writeUTFBytes(strjson);
   fs2.close();
   }

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值