FlashでJSONを扱う方法
巷で話題のJSONを扱ってみました。JSON(JavaScript Object Notation)は、階層化されたデータをシンプルなテキストで表現することができ、XMLよりも少ないデータ量でFLASHとサーバサイドスクリプト間のデータのやりとりを可能にできます。
さらに、Flash内でXMLをパースして扱うようなめんどくさいやり方ではなく、馴染みのある配列とオブジェクトのみで記述されるので、処理もかんたんです。
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();
これでデバッガで確認すると、ちゃんと2つの要素が入った配列が生成されます。
逆にFlash上の配列やオブジェクトをJSON文字列にする方法は以下のようにstringify関数を実行します。
myObj1 = new Object(); myObj1.myprop1 = "myvalue1"; myObj2 = new Object(); myObj2.myprop2 = "myvalue2"; myArray = Array(myObj1, myObj2); jsonstring = JSON.stringify(myArray);
これでデバッガで確認すると、ちゃんとJSON文字列が生成されます。
2006-10-09