关于javascript:Adobe AIR:处理服务器中的JSON对象

关于javascript:Adobe AIR:处理服务器中的JSON对象

Adobe AIR: Handling JSON objects from server

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

但是,出于安全原因,在Adobe AIR中使用eval()受到限制。因此,我可以从远程服务器获得答复,但是不能将其转换回JavaScript对象。有没有解决此问题的方法?我想对我的JavaScript对象使用JSON,因为它几乎可以立即使用。

旁注:我确实知道强制执行此问题的安全性,但是我将为竞争做一些快速的应用程序开发,因此该程序只是一个快速的原型,不能用于生产目的。不过,如果我现在想做的事情有更好的替代方法,那就太好了

更新:

感谢Theo和jsight的回答;

我今天学到的重要一件事是,实际上,我可以使用Adobe AIR扩展的

1
<script src="lib/myClasses.swf" type="application/x-shockwave-flash">

标记来使用ActionScript库。请查看Theo \\的链接以获取更多详细信息!


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


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


您看过as3corelib吗?它似乎为JSON数据提供了AS3解析器,我希望它不依赖于eval(如您所述,eval往往不利于安全性)。 Javascript也有类似的库,由于倾向于对(可能)邪恶数据调用eval的安全性,它们往往是解析json的首选方法。


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

摘录自Adobe AIR 1.1 Doc's
" ...在沙盒子框架中运行内容可能更方便,这样就可以不受eval()限制地运行内容。"

另一篇相关文章:在AIR上构建:使用沙盒桥


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是一个不错的起点。


推荐阅读