JSONをActionScriptで扱う
ActionScriptでJSONを扱いたいので、調べてみるとas3corelibというライブラリがありました。これを使用すればJSON.decode(String)というように簡単にできます。
通信するアプリになるので、サンプルはここにおいておきます。ソースは以下の通り
<?xml version="1.0"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"> <mx:Script> <![CDATA[ import mx.controls.Alert; import mx.collections.ArrayCollection; import mx.rpc.events.ResultEvent; import com.adobe.serialization.json.JSON; private function onJSONLoad(event:ResultEvent):void { var text:String = new String(event.result); var json:Array = JSON.decode(text); var data:ArrayCollection = new ArrayCollection(json); dg.dataProvider = data; } private function loadJSON():void { jsonLoader.send(); } ]]> </mx:Script> <mx:HTTPService id="jsonLoader" resultFormat="text" result="onJSONLoad(event)" url="./js/study_03.js"/> <mx:DataGrid id="dg" width="100%" height="100%" rowCount="5"> <mx:columns> <mx:DataGridColumn dataField="name" headerText="名前"/> <mx:DataGridColumn dataField="age" headerText="年齢"/> </mx:columns> </mx:DataGrid> <mx:Button label="ロード" click="loadJSON();"/> </mx:Application>
ちなみに、コンパイル時には下のように-include-librariesをつける必要がある。最初、-compiler.external-library-pathをつけてはまってしまった。ブラウザから起動するとなにも文句言ってくれないんだもの、、、
rascut -c "-include-libraries=corelib.swc" study_03_json.mxml