15

01月2009年

JSONとActionscriptとFlashVarsとダブルクォーテーション

nagai 20:26 PM

  • はてなブックマークに登録
  • livedoorクリップに登録
  • Yahoo!ブックマークに登録
  • deliciousに追加

イメージ

ActionscriptにJSONでデータを渡す時に、ちょいと引っかかったので備忘録としてエントリ。

1. as3corelibを使って、FlashVars経由でJSONデータを取り込もうとする。

swfObject内記述

so.addVariable('jsonData','{"user":[{"date":"2009/01/01","impression":"20","click":"6","entry":"1"},{"date":"2009/01/03","impression":"200","click":"8","entry":"3"}]}');

Actionscript側はこんな感じ

import com.adobe.serialization.json.JSON;
var flashVars:Object = loaderInfo.parameters;
var json:Object = JSON.decode(flashVars.jsonData);

trace(json["user"][0]["date"])

→結果:ダメ 『{』しか出力されない

2. なんかダブルクォーテーションが怪しいっぽいので、バックスペース(\)でエスケープしてみる。

swfObject内記述

so.addVariable('jsonData','{\"user\":[{\"date\":\"2009/01/01\",\"impression\":\"20\",\"click\":\"6\",\"entry\":\"1\"},{\"date\":\"2009/01/03\",\"impression\":\"200\",\"click\":\"8\",\"entry\":\"3\"}]}');

→結果:ダメ やっぱり『{』しか出ない

3. そもそもJSONの書式が間違ってるんじゃないかと思い、チェックしてみる。

JSONLintでバリデートをかけてみた。

→結果:JSONの書式は問題なし えー。

4. やっぱりダブルクォーテーションが怪しいので、今度は文字参照(")で試してみる。

swfObject内記述

so.addVariable('jsonData','{"user":[{"date":"2009/01/01","impression":"20","click":"6","entry":"1"},{"date":"2009/01/03","impression":"200","click":"8","entry":"3"}]}');

→結果:成功! 『2009/01/01』と出力されました!

なんだコレだけのコトだったのか…
なんかシックリこないケド、とりあえず解決にしました…

その他、JSONの注意事項です。
・シングルクォーテーションはダメ
・16進数はダメ
・小数点はじまりの数値はダメ

バシャログスタッフによるWebサイト制作サービス

トラックバック

このエントリーのトラックバックURL
http://c-brains.jp/cgi-bin/mt/###/1769
###はmt-tb.cgiに変更してください。

コメントを投稿

ページの先頭へ

POPULAR TAGS
  • バシャログスタッフによるWebサイト制作サービス

ARCHIVE

RECENT COMMENTS

toyama on 【Fireworks】あなたのワークスペース、どんなレイアウト?
> maki さん コメントありがとうございます。 レイヤー
maki on 【Fireworks】あなたのワークスペース、どんなレイアウト?
初期設定のまま、パネル1列で作業してました。。 今までレイヤ
tomo on [使える CSS テクニック] CSSで実現するプルダウンメニュー
sakai様 早速ご返答ありがとうございます。 子供がho
sakai on [使える CSS テクニック] CSSで実現するプルダウンメニュー
>RodMond さん コメントありがとうございます。 自
RodMond on [使える CSS テクニック] CSSで実現するプルダウンメニュー
すみません解決しました(汗) ゴーストを覚えられていたみた