Flex/Flashでのウェブアプリケーションでは、サーバサイドとデータの交換は必ず必要なので、同じのデータ情報に対して、少ないデータ量で取れるとウェブアプリケーションにもスピードアップできます。今回紹介する「JSON」では、XMLよりも少ないデータ量でFLASHとサーバサイドスクリプト間のデータのやりとりを可能にできます。
JSONとは,構造化されたデータを記述するための,テキスト・ベースのデータ記述言語の一つです。JavaScript(ECMAScript)でオブジェクト・リテラルを記述する構文をそのまま使っているため,人間が読んでわかりやすく,プログラムでも容易に処理できるという特徴があります。
XMLより軽量なJSONはまさにこのような用途に適した形式です。例えば,Webアプリケーションのクライアント構築で盛んに使われるようになった「Ajax」は,もともとXMLデータをページ遷移と非同期にやり取りしていく形態を指していましたが,現在はXMLの代わりにJSONを使うケースが増えています。
JSONの構文などの概要は,「Introducing JSON」というWebサイトに各国語でまとめられています。
JavaScriptプログラム中でこのJSON形式データを処理するには,evalメソッドを使います。evalメソッドは,引数として与えた文字列をJavaScriptプログラムとして解釈するメソッドで,JSON形式の文字列をオブジェクトにしてくれます。
JSONとして情報をやりとりするには「JSON.as」(公式ページからダウンロードできる)を利用します。 巷のサイトの中では#includeを使ってやってるところもありますが、ActionScript2.0ではエラーが起こりますので、importを使って読み込みます。
import JSON; //埋め込みたいFlashファイルと同階層に「JSON.as」を配置します。
これでJSONクラスを扱うことができるようになります。JSON式のデータの記法は、複数の要素は配列でまとめ、要素内はオブジェクトでまとめます。かんたんに書くと以下のようになります。
[{"属性名1":"属性値1"}, {"属性名2":"属性値2"},...]
以下のソースの様で、JSON文字列をパースし、扱いやすい配列に変換してみます。
- import JSON;
- jsonstr = '[{"myprop1":"myvalue1"},{"myprop2":"myvalue2"}]';
- jsonlist = JSON.parse(jsonstr);
- this.stop();
逆にFlash上の配列やオブジェクトをJSON文字列にする方法は以下のようにstringify関数を実行します。
- myObj1 = new Object();
- myObj1.myprop1 = “myvalue1″;
- myObj2 = new Object();
- myObj2.myprop2 = “myvalue2″;
- myArray = Array(myObj1, myObj2);
- jsonstring = JSON.stringify(myArray);
関連リンク
http://www.json.org/ 公式ページ
http://www.ironhearts.com/diary/archives/001338.html PHPからJSONでFlashにデータを渡す
Posted on Tuesday, 12th May 2009 by admin
Tags: Flash, JSON, XML
Posted in ActionScript, Flash Project | Comments (0) | 3,438 views
