返回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代码- <?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目录下即可。具体如何使用还有待学习学习……
相关阅读 更多 +