【问题标题】:Adobe AIR: Handling JSON objects from serverAdobe AIR:处理来自服务器的 JSON 对象
【发布时间】:2010-09-06 12:07:08
【问题描述】:

我有一个通过 Ajax 调用从远程服务器检索对象的脚本。服务器以 JSON 表示法返回对象。

但是,在 Adob​​e AIR 中,出于安全原因,使用 eval() 存在限制。所以我能够从远程服务器获得回复,但不能将它们转回 JavaScript 对象。这个问题有什么解决方法吗?我想为我的 JavaScript 对象使用 JSON,因为它几乎可以立即使用。

旁注:我确实理解强制执行该问题的安全隐患,但我将为比赛做一些快速的应用程序开发,因此该程序只是一个快速原型,而不是用于生产目的。不过,如果我现在正在尝试做的事情有更好的选择,那就太好了


更新:

感谢Theojsight 的回答;

我今天学到的一件重要的事情是,我实际上可以通过使用 ActionScript 库来使用

标签由 Adob​​e AIR 扩展。查看Theo's链接了解更多详情!

【问题讨论】:

    标签: javascript ajax json air


    【解决方案1】:

    当前的 AIR 版本 (v2.5) 通过 JSON.stringify() 和 JSON.parse() 捆绑了具有原生 JSON 支持的较新 WebKit。

    【讨论】:

      【解决方案2】:

      我认为如果您使用 iframe 和沙盒桥,这是可能的。您应该能够在沙盒 iframe 中对下载的代码运行 eval(),

      摘自Adobe AIR 1.1 Doc's “...在沙盒子框架中运行内容可能会更方便,这样内容就可以在没有 eval() 限制的情况下运行...”

      另一篇相关文章:Building on AIR: Working with the Sandbox Bridges

      【讨论】:

        【解决方案3】:

        您可以找到JSON parser written in JavaScript here (source code here)。您还可以使用 JavaScript 中的 as3corelib JSON 解析器,这里有 a description of how to access ActionScript libraries from JavaScript here

        【讨论】:

          【解决方案4】:

          JSON 是 Javascript 对象表示法,所以如果您使用的是 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 是一个不错的起点。

          【讨论】:

            【解决方案5】:

            你看过as3corelib吗?它似乎为 JSON 数据提供了一个 AS3 解析器,我希望它不依赖于 eval (正如你所指出的,eval 往往不利于安全性)。 Javascript 也有类似的库,它们往往是解析 json 的首选方式,因为在(可能)邪恶数据上调用 eval 会带来安全隐患。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2017-02-10
              • 2014-08-12
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多