文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>返回json转换ArrayCollection

返回json转换ArrayCollection

时间:2010-03-18  来源:xue2

//result数据:
public static const result:String = '{"result":1,"list":[{"realname":"某男1","age":"29","born":"1980-6-26","cardid":"01030418008064422"},' + 
        '{"realname":"某男2","age":"33","born":"1976-6-1","cardid":"01030418008064422"},' + 
        '{"realname":"某女1","age":"33","born":"1976-6-1","cardid":"01030418008064422"},' + 
        '{"realname":"某女2","age":"33","born":"1976-6-1","cardid":"01030418008064422"},' + 
        '{"realname":"某男3","age":"33","born":"1976-6-1","cardid":"01030418008064422"},' + 
        '{"realname":"某女3","age":"33","born":"1976-6-1","cardid":"01030418008064422"}]}'; 
 
var objJson:Object = new Object();
objJson = JSON.decode(result);
var listData:ArrayCollection = new ArrayCollection(objJson.list as Array)
 
//可以在其他控件中指定dataProvider为listData,如
datagrid.dataProvider = listData;
 
------------------------------
Flex中使用Json十分方便。json是介于纯文本方式与xml方式之间的一种格式,json能做到的事情,xml完成可以做到。为什么要用json呢,我看大部分还是像我一样,不得不用。json是ajax数据传输的首选,现有的项目使用的已经是json,如果增加flex界面时也使用json,那改动就会非常少。扫盲贴中说出的三个理由,我觉得这一个最充分。

    要在flex中使用json,首先要下一个json包。是官方的,却在官方怎么也载不下来。终于在CSDN上用了3分才down下来。放在附件中,需要的可以拿去用。

    贴一个例子:

Xml代码
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"  
  3.  creationComplete="init()">  
  4.     <mx:Script>  
  5.         <![CDATA[  
  6.               
  7.             import com.adobe.serialization.json.*;  
  8.               
  9.               
  10.             private var jsonStr:String;  
  11.             private var jsonObj:Object;           
  12.               
  13.             private var jsonObj2:Object;  
  14.             private var jsonStr2:String;  
  15.               
  16.             internal function init():void{  
  17.                 jsonStr =  '{"name":"zhanzhihu","age":22,"gender":"male"}';               
  18.                 jsonObj = new Object();  
  19.                 jsonObj = JSON.decode(jsonStr);  
  20.                 trace(jsonObj.name);  
  21.                   
  22.                 jsonObj2 = new Object();  
  23.                 jsonObj2.firstName = "bill";  
  24.                 jsonObj2.lastName  = "Gate";      
  25.                 jsonObj2.com       = "Microsoft";  
  26.                 jsonStr2 = JSON.encode( jsonObj2 );  
  27.                 trace( jsonStr2 );       
  28.             }  
  29.                           
  30.         ]]>  
  31.     </mx:Script>  
  32. </mx:Application>  
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init()"> <mx:Script> <![CDATA[ import com.adobe.serialization.json.*; private var jsonStr:String; private var jsonObj:Object; private var jsonObj2:Object; private var jsonStr2:String; internal function init():void{ jsonStr = '{"name":"zhanzhihu","age":22,"gender":"male"}'; jsonObj = new Object(); jsonObj = JSON.decode(jsonStr); trace(jsonObj.name); jsonObj2 = new Object(); jsonObj2.firstName = "bill"; jsonObj2.lastName = "Gate"; jsonObj2.com = "Microsoft"; jsonStr2 = JSON.encode( jsonObj2 ); trace( jsonStr2 ); } ]]> </mx:Script> </mx:Application>

输出为:

zhanzhihu
{"firstName":"bill","lastName":"Gate","com":"Microsoft"}

    jsonStr是一个json格式的字符串,用JSON.decode(String)便可以将它解析为as对象,同样用JSON.encode(Object)可以将as对象转为json字符串,flex前台对json的操作真是方便。

 

 

 

 

  • corelib.rar (38.3 KB)
  • 描述: corelib.swc
  • 下载次数: 458

 

 

-----------------------------------------

具体需要调用外部免费的ActionScript 3核心库(http://as3corelib.googlecode.com),里面包含了JSON解码器和JSON编码器。下载回来把lib目录的as3corelib.swc文件附加到FlexBulider项目的libs目录下即可。具体如何使用还有待学习学习……

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载