8

Ajax呼び出しを介してリモートサーバーからオブジェクトを取得するスクリプトがあります。サーバーはJSON表記でオブジェクトを返します。

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

補足:問題を強制することによるセキュリティへの影響は理解していますが、競争のために迅速なアプリケーション開発を行うため、プログラムは簡単なプロトタイプにすぎず、本番目的には使用されません。それにもかかわらず、私が今やろうとしていることに代わるより良い代替案があれば素晴らしいでしょう


アップデート:

Theojsightの回答に感謝します。

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

<script src = "lib / myClasses.swf" type = "application / x-shockwave-flash"> </ script>
AdobeAIRによって拡張されたタグ。詳細については、テオのリンクをチェックしてください!

4

5 に答える 5

7

JavaScriptで記述されたJSONパーサーはここにありますソースコードはここにあります)。JavaScriptからas3corelibJSONパーサーを使用することもできます。JavaScriptからActionScriptライブラリにアクセスする方法の説明がここにあります

于 2008-08-24T08:11:29.673 に答える
3

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

于 2010-12-24T06:19:52.397 に答える
2

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

于 2008-08-22T03:25:15.743 に答える
0

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

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

別の関連記事: AIR での構築: サンドボックス ブリッジの操作

于 2008-08-25T18:39:22.977 に答える
0

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/

Flex / AS3 ルートに進むことにした場合、jsight が言ったように、as3corelib は開始するのに適した場所です。

于 2008-08-22T11:26:32.183 に答える