ASでJSONをエンコードしたりデコードしたり

月曜日, 8月 17th, 2009

こんにちは、なかわけです。

今日は久しぶりにFlashの話です。いつもの備忘録です。
as3corelibで提供されているJSONユーティリティを使います。

エンコードの場合、

package {
	import flash.display.Sprite;
	import com.adobe.serialization.json.JSON; 

	public class encodeJson extends Sprite {
		public function encodeJson():void {
			var encodedJson:String = JSON.encode({
				'name' : 'nakawake',
				'type'  : 'neko',
				'age'   : 3
			});
		}
	}
}

デコードの場合(ウェブから取得してきた場合)

package {
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.net.URLLoader;
	import flash.net.URLRequest;
	import flash.events.IOErrorEvent;
	
	import com.adobe.serialization.json.JSON; 

	public class decodeJson extends Sprite {
		public function PostAndLoad() {			
			var request:URLRequest = new URLRequest('./json.php');
			var loader:URLLoader = new URLLoader();
			loader.load(request);
			loader.addEventListener(IOErrorEvent.IO_ERROR, errorHandler);
			loader.addEventListener(Event.COMPLETE, loaderCompleteHandler);
		}

		//ロードが正常に完了したとき
		private function loaderCompleteHandler(event:Event):void {
			var json:Object = JSON.decode(loader.data); 
			trace(json['name']);
			trace(json['type']);
			trace(json['age']);
		}

		//ロードに失敗したときの処理
		private function errorHandler(event:IOErrorEvent):void {
			trace("失敗したー");
		}
	}
}

こんな感じ

Tags: , ,

Comments are closed.