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文字列をパースし、扱いやすい配列に変換してみます。

  1. import JSON;
  2. jsonstr = '[{"myprop1":"myvalue1"},{"myprop2":"myvalue2"}]';
  3. jsonlist = JSON.parse(jsonstr);
  4. this.stop();

逆にFlash上の配列やオブジェクトをJSON文字列にする方法は以下のようにstringify関数を実行します。

  1. myObj1 = new Object();
  2. myObj1.myprop1 = “myvalue1″;
  3. myObj2 = new Object();
  4. myObj2.myprop2 = “myvalue2″;
  5. myArray = Array(myObj1, myObj2);
  6. jsonstring = JSON.stringify(myArray);

関連リンク

http://www.json.org/   公式ページ

http://www.ironhearts.com/diary/archives/001338.html    PHPからJSONでFlashにデータを渡す

メインコンテンツEND ■
1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...

Posted on Tuesday, 12th May 2009 by admin

Tags: , ,
Posted in ActionScript, Flash Project | Comments (0) | 5,015 views

Leave a Reply