javascript Adobe AIR: サーバーからの JSON オブジェクトの処理



ajax (4)

JSONはJavascript Object Notationです.Javascriptを使用している場合は、すでにそこにいます。 これらのリンクを見て、JSONからJavascriptオブジェクトを作成する方法の例を示します:

http://www.hunlock.com/blogs/Mastering_JSON_(JavaScript_Object_Notation_)

http://betterexplained.com/articles/using-json-to-exchange-data/

jsightが言ったようにFlex / AS3のルートに進むことを決めた場合、as3corelibは良いスタート地点です。

https://ffff65535.com

私はAjax呼び出しを通してリモートサーバーからオブジェクトを取得するスクリプトを持っています。 サーバーはJSON表記でオブジェクトを返します。

ただし、Adobe AIRでは、セキュリティ上の理由からeval()を使用することに制限があります。 だから私はリモートサーバーから返信を得ることができますが、JavaScriptオブジェクトに戻すことはできません。 この問題の回避策はありますか? JSONをすぐに使用できるので、JavaScriptオブジェクトにJSONを使用したいと考えています。

Side-note:問題を強制することによるセキュリティへの影響を理解していますが、競争のための迅速なアプリケーション開発を行っているので、プロダクトは実用的ではない素早いプロトタイプにすぎません。 それにもかかわらず、私が今やろうとしていることに、より良い選択肢があるなら

更新:

彼らの答えはTheoとjsightに感謝します。

私が今日学んだ重要なことの1つは、実際にActionScriptライブラリを使用できることです。

<script src="lib/myClasses.swf" type="application/x-shockwave-flash"></script>
タグはAdobe AIRによって拡張されました。 詳細はTheoのリンクをご覧ください!


as3corelibを見ましたか? JSONデータ用のAS3パーサを提供するように見えますが、私が望むのは、eval(evalはあなたが気付いたようにセキュリティに悪い傾向がある)に依存しないことです。 Javascriptにも同様のライブラリがあり、悪意のあるデータに対するevalを呼び出すことのセキュリティ上の意味合いから、jsonを解析するのに好ましい方法です。


iframeとサンドボックスブリッジを使用するとこれが可能だと思います。 サンドボックスされたiframe内のダウンロードされたコードに対してeval()を実行できるはずです。

Adobe AIR 1.1 Docからの抜粋... "サンドボックス化された子フレーム内でコンテンツを実行して、コンテンツをeval()...に制限なく実行できるようにする方が便利かもしれません"

別の関連記事: AIRでのビルド:サンドボックスブリッジの使用


現在のAIRリリース(v2.5)では、JSON.stringify()およびJSON.parse()を使用してネイティブJSONサポートを備えた新しいWebKitがバンドルされています。





air