最近在做个flex项目.管理软件之类的.那自然要用到些数据格式来传送数据.. 在网上找了很多关于java flex json之间数据转换传送的.. 都不怎么满意 .感觉,,太复杂了..在网络资料的基础上改了改.. 这里.我分享下我自己刚刚折腾出来的方法 .
<?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="onJSONLoad()" >
<fx:Script >
<![CDATA[
import mx.collections.ArrayCollection;
//见<s:Application creationComplete="onJSONLoad()">
protected function onJSONLoad():void
{
var testJson:String = "[{\"firstName\":\"Brett\",\"lastName\":\"McLaughlin\"}," +
"{\"firstName\":\"Tom\",\"lastName\":\"Kim\"}]" ;
//旧flex需要引用外部的lib. flex4之后,就直接用JSON.parse
//arr = (com.adobe.serialization.json.JSON.decode(testJson) as Array);
var arr:Array = (JSON.parse(testJson) as Array);
// trace(testJson); //[{"firstName":"Brett","lastName":"McLaughlin"},{"firstName":"Tom","lastName":"Kim"}]
var dp:ArrayCollection = new ArrayCollection(arr);
grid.dataProvider = dp;
}
]]>
</fx:Script>
<mx:DataGrid id="grid" right="10" left="10" top="10" bottom="10" >
<mx:columns>
<mx:DataGridColumn headerText="名" dataField="firstName"/>
<mx:DataGridColumn headerText="姓" dataField="lastName"/>
</mx:columns>
</mx:DataGrid>
</s:Application>
最后,效果见上图了.
当然啦.这只是个小小例子.至于怎么从后台让一个string的json过来..用<mx:RemoteObject>应该不成问题吧?至于怎么传.大家折腾下好了. @_^