本文和大家重点讨论一下如何在Flex中使用Json,要在Flex中使用Json,首先要下一个Json包。希望本文的介绍能让你有所收获。
在Flex中使用Json
要用到Json,看了一篇(http://bbs.actionscript3.cn/thread-1657-1-1.html)的扫盲贴,在Flex中使用Json十分方便。Json是介于纯文本方式与xml方式之间的一种格式,Json能做到的事情,xml完成可以做到。为什么要用Json呢,我看大部分还是像我一样,不得不用。Json是ajax数据传输的首选,现有的项目使用的已经是Json,如果增加Flex界面时也使用Json,那改动就会非常少。扫盲贴中说出的三个理由,我觉得这一个最充分。
要在Flex中使用Json,首先要下一个Json包。是官方的,却在官方怎么也载不下来。终于在CSDN上用了3分才down下来。放在附件中,需要的可以拿去用。
贴一个例子:
- <?xmlversionxmlversion="1.0"encoding="utf-8"?>
- <mx:Applicationxmlns:mxmx:Applicationxmlns:mx="http://www.adobe.com/2006/mxml"
- layout="absolute"
- creationComplete="init()">
- <mx:Script>
- <![CDATA[
- importcom.adobe.serialization.Json.*;
- privatevarJsonStr:String;
- privatevarJsonObj:Object;
- privatevarJsonObj2:Object;
- privatevarJsonStr2:String;
- internalfunctioninit():void{
- JsonStr='{"name":"zhanzhihu","age":22,"gender":"male"}';
- JsonObj=newObject();
- JsonObj=Json.decode(JsonStr);
- trace(JsonObj.name);
- JsonObj2=newObject();
- 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的操作真是方便。