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

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

旁注:我确实理解强制问题的安全隐患,但我会为竞争做一些快速的应用程序开发,因此该程序只是一个快速的原型,而不是用于生产目的。 尽管如此,如果有一个比我现在想要做的更好的替代方案,那将会很棒


更新:

感谢Theojsight的回答;

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

<script src="lib/myClasses.swf" type="application/x-shockwave-flash"></script>
由Adobe AIR扩展的标记。 查看Theo的链接了解更多详情!

===============>>#1 票数:6 已采纳

你可以在这里找到用JavaScript编写JSON解析器这里是 源代码 )。 您还可以使用JavaScript中的as3corelib JSON解析器,这里有关于如何从JavaScript访问ActionScript库的说明

===============>>#2 票数:3

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

===============>>#3 票数:2

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

===============>>#4 票数: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是一个很好的起点。

===============>>#5 票数:0

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

Adobe AIR 1.1 Doc的摘录“......在沙盒子框架中运行内容可能更方便,因此内容可以在没有eval()限制的情况下运行......”

另一篇相关文章: 在AIR上构建:使用Sandbox Bridges

  ask by pkchukiss translate from so

未解决问题?本站智能推荐:

1回复

Adobe Air HTML递归文件移至JSON

我尝试使用Adobe AIR HTML创建目录列表。 输出应为JSON文档。 作为模板,我使用了以下node.js代码: https : //stackoverflow.com/a/11194896/799692 文件漫游有效。 但是JSON对象仅包含最后一个Folder。
2回复

Ext Js和Adobe Air

任何人都可以为ext js和adobe air推荐一些好的教程吗? 我所看到的似乎从你开始知道很多或已经有很多代码。 我正在寻找的是一个简单的一步一步的指南,它带你了解与adobe air一起使用的Ext Js的基础知识,事实上我认为只有一个好的Ext Js教程可以方便我找不到任何东西。
1回复

Adobe AIR和多个XMLHttpRequests正在……很奇怪

我正在使用HTML + Javascript制作一个小型的Adobe AIR应用程序(我的第一个)。 我需要运行多个异步数据请求,但是第二个似乎并没有触发(请注意,这些请求最初并未并发运行)。 我尝试将程序缩减到出现问题的最低限度,起初仅触发了第一个请求,但随后情况变得很奇怪。 代码和输出
1回复

jQuery的同步Ajax请求在Adobe Air上不起作用

令人难以置信的同步请求有时在某些情况下不起作用。 有没有人遇到过这种情况并有解决方案? 谢谢。
4回复

与Ajax Adob​​e AIR应用程序中的API共享的秘密

我是开发AIR应用程序的新手,所以也许这是一个愚蠢的问题,但我似乎找不到google的任何答案。 您能给我的任何帮助将不胜感激。 我正在使用Ajax使用与flickr的Api相同的api(带有共享密钥)构建AIR应用程序。 问题是空中安装包中包含所有源代码,我不想泄露我的共享机密。
1回复

将服务器HTML应用程序更改为独立的桌面应用程序

我写了一个简单的Web服务器,它通过公共链接指向包含图像URL和名称的google文档,并输出包含其内容的易于打印的HTML照片目录。 我是为不再能够参与其中的志愿者组织创建的。我需要将生成该目录的能力传递给我的后继者。 我不确定我可以相信自己可以长期维护组织所需的Web应用程序。
1回复

从Dreamweaver进行预览时,JSON stringify可以工作,但在创建应用程序时,无法从.AIR文件进行预览

我一直在使用HTML和javascript版本的Adobe AIR开发一个简单的应用程序。 该应用程序将表单提交到在线URL。 表单的值是JSON字符串。 我正在使用此功能来提交数据: 当我使用以下方法在DREAMWEAVER中测试应用程序时, JSON.stringi
1回复

从基于JS的AIR应用程序登录到ColdFusion站点?

我在服务器上有以下ColdFusion代码(无法更改): 并且我正在尝试构建一个JavaScript窗口以从Adobe AIR应用程序登录到该窗口。 具体来说,我希望它发送用户凭证(uName和pWord),并带回帐户ID(也将包含在“ SELECT *”语句中)。 谁能帮我
1回复

有没有办法在AIR应用程序沙箱中使用jQuery.getScript?

我正在尝试使用HTML / JS引擎(不是flex或flash)构建AIR应用程序,但是在尝试从应用程序目录动态加载JS文件时遇到了一个问题。 一旦启动应用程序,如果我尝试使用jQuery.getScript方法加载脚本,则该脚本将永远不会被解释,也不会引发任何错误。 我已经阅读了AI
2回复

如何实现桌面行情自动收录器?

我想实现一个基于桌面的股票行情。 该代码将显示在相关PHP网站上注册产品的用户数量。 此数据存储在MySQL数据库中。 每当新用户注册时,股票行情就会更新。 如果它是基于Web的,这将很容易实现,您能否建议我将其作为桌面独立应用程序实现的最佳方法(排除Yahoo小部件和Windows边栏