Chinaunix首页 | 论坛 | 博客
  • 博客访问: 925725
  • 博文数量: 264
  • 博客积分: 10107
  • 博客等级: 上将
  • 技术积分: 2455
  • 用 户 组: 普通用户
  • 注册时间: 2007-05-09 16:34
文章分类

全部博文(264)

文章存档

2012年(1)

2011年(11)

2010年(128)

2009年(82)

2008年(42)

我的朋友

分类: 系统运维

2010-03-18 15:25:17

//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="" layout="absolute"  
  3.  creationComplete="init()">  
  4.     <mx:Script>  
  5.          
  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>  

输出为:

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

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

 

 

 

 

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

 

 

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

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

阅读(2149) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~