Adobe AIR:处理来自服务器的JSON对象

8

我有一个脚本,通过Ajax调用从远程服务器检索对象。 服务器以JSON表示法返回对象。
然而,在Adobe AIR中,出于安全原因,使用eval()存在限制。因此,我可以从远程服务器获取回复,但无法将它们转换回JavaScript对象。是否有任何解决此问题的方法?我想使用JSON作为我的JavaScript对象,因为它几乎可以立即使用。
顺便说一下:我确实了解强制执行此问题的安全影响,但我将为竞赛进行一些快速应用程序开发,因此该程序只是一个快速原型,不用于生产目的。尽管如此,如果有更好的替代方案,那将是很棒的。

更新:

感谢Theojsight的回答;

今天我学到的重要一点是,我可以通过使用由Adobe AIR扩展的

<script src="lib/myClasses.swf" type="application/x-shockwave-flash"></script>
标签来利用ActionScript库。查看Theo的链接获取更多详细信息!

5个回答

7

3

当前的AIR版本(v2.5)捆绑了一个更新的WebKit,它通过JSON.stringify()和JSON.parse()提供原生的JSON支持。


2
您是否看过as3corelib?它似乎提供了一个用于解析JSON数据的AS3解析器,我希望它不依赖于eval(正如您所指出的,eval往往对安全性有影响)。Javascript也有类似的库,由于调用(eval)潜在的恶意数据可能会带来安全隐患,因此它们通常是解析json的首选方式。

0

0

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

Adobe AIR 1.1 Doc's的摘录:“...在沙盒化的子框架中运行内容可能更方便,以便可以在eval()上没有限制地运行内容...”

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接