- 2008-08-19 (火)
- corelib
マッシュアップコンテンツなど、各 API サービスを利用してコンテンツ制作していると、API によっては、レスポンスが JSON 形式のみの場合も少なくはないはず。
※JSON(ジェイソン)とは
(関係ないけども「ジェイソン」って微妙に微妙な名前…)
さて、API のレスポンスが XML 形式であれば、Flash でも簡単に処理が可能となるので問題ないのだが、JSON 形式の場合だと、「??」と困惑する人も多いかもしれない。ちなみに僕もその中の1人である(汗
でも、JSON 形式でも AS3 であれば、ライブラリを利用することで簡単に処理を行うことができる。
サンプル JSON 形式データ (json.txt)
{"data":[{"No":1,"name":"名前1","title":"タイトル1"},{"No":2,"name":"名前2","title":"タイトル2"},{"No":3,"name":"名前3","title":"タイトル3"}]}
ソース
package {
//クラス
import flash.display.Sprite;
import flash.events.Event;
import flash.net.URLRequest;
import flash.net.URLLoader;
//corelib version .90
import com.adobe.serialization.json.JSON;
public class Main extends Sprite {
//コンストラクタ
public function Main() {
//URLLoader作成
var jsonUrl = new URLRequest("json.txt");
var jsonLoader:URLLoader = new URLLoader(jsonUrl);
jsonLoader.load(jsonUrl);
//イベント設定
jsonLoader.addEventListener(Event.COMPLETE, jsonLoaderComplete);
//読み込み完了
function jsonLoaderComplete(event:Event) {
//データを格納
var jsonData = jsonLoader.data;
//JSONデータをデコード
var obj:Object = JSON.decode(jsonData);
//出力
var n:uint = obj["data"].length;
for (var i:uint = 0; i < n; i++) {
trace(obj["data"][i]["No"]);
trace(obj["data"][i]["name"]);
trace(obj["data"][i]["title"]);
}
}
}
}
}
上記の trace 出力結果
1
名前1
タイトル1
2
名前2
タイトル2
3
名前3
タイトル3
JSON 形式データも構造化されているものなので、オブジェクトとして配列化させ、簡単にデータが取り出せるようになる。
この記事をブックマークしておく
コメント:0
トラックバック:0
- この記事のトラックバックURL
- http://god.xsrv.jp/__mt/mt-tb.cgi/1332
- トラックバックを受ける記事
- JSON 形式データを corelib を利用して読み込む (AS3) from 1ka2ka.com Flash & Action Script