本文向大家介绍一下如何在Flex中使用Json,Json是介于纯文本方式与xml方式之间的一种格式,Json能做到的事情,请看本文详细介绍。
?
本文和大家重点讨论一下如何在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的操作真是方便。