Flex中解析JSON
发布时间:2020-12-15 03:48:43 所属栏目:百科 来源:网络整理
导读:原文地址:http://www.voidcn.com/article/p-pefhpoeb-wo.html 今天碰到flex4.5中使用json数据的情况。 网上查了下,flex4.5自带包没有提供解析json数据的方法。(flex4.6已经支持) 需要使用corelib包,下载as3corelib.swc文件直接复制到flex项目的libs目录
原文地址:http://www.voidcn.com/article/p-pefhpoeb-wo.html 今天碰到flex4.5中使用json数据的情况。 网上查了下,flex4.5自带包没有提供解析json数据的方法。(flex4.6已经支持) 需要使用corelib包,下载as3corelib.swc文件直接复制到flex项目的libs目录即可。 下面是例子: <?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" creationComplete="application1_creationCompleteHandler(event)"> <s:layout> <s:BasicLayout/> </s:layout> <fx:Script> <![CDATA[ import com.adobe.serialization.json.JSON; import mx.collections.ArrayCollection; import mx.controls.Alert; import mx.events.FlexEvent; import mx.rpc.events.FaultEvent; import mx.rpc.events.ResultEvent; protected function application1_creationCompleteHandler(event:FlexEvent):void { var jsonData:String = "[{"name":"jack","number":"312"},{"name":"lucy","number":"212"}]"; var arr:Array = (JSON.decode(jsonData) as Array); var dp:ArrayCollection = new ArrayCollection(arr); grid.dataProvider = dp; } ]]> </fx:Script> <fx:Declarations> </fx:Declarations> <mx:DataGrid id="grid" width="100%" height="100%"> <mx:columns> <mx:DataGridColumn headerText="名字" dataField="name"/> <mx:DataGridColumn headerText="编号" dataField="number"/> </mx:columns> </mx:DataGrid> </s:Application>
后来怀疑json中引号需要使用双引号,改了就解决了。 建议在解析前,将单引号替换为双引号: jsonData= jsonData.replace(/'/g,"""); ? 在flex 4.7中,转换和上面的略有不同。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |