Adobe AIR: Handling JSON objects from server我有一个脚本,可以通过Ajax调用从远程服务器检索对象。服务器以JSON表示法返回对象。 -?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?--- -?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?--- -?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?--- -?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?--- -?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?--- -?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?--- -?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?--- -?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?--- -?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?--- -?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?--- ?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?- 但是,出于安全原因,在Adobe AIR中使用eval()受到限制。因此,我可以从远程服务器获得答复,但是不能将其转换回JavaScript对象。有没有解决此问题的方法?我想对我的JavaScript对象使用JSON,因为它几乎可以立即使用。 旁注:我确实知道强制执行此问题的安全性,但是我将为竞争做一些快速的应用程序开发,因此该程序只是一个快速的原型,不能用于生产目的。不过,如果我现在想做的事情有更好的替代方法,那就太好了 更新: 感谢Theo和jsight的回答; 我今天学到的重要一件事是,实际上,我可以使用Adobe AIR扩展的
标记来使用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 另一篇相关文章:在AIR上构建:使用沙盒桥 JSON是Javascript对象表示法,因此,如果您使用Javascript,那么您已经存在了! http://www.hunlock.com/blogs/Mastering_JSON_(_JavaScript_Object_Notation_) http://betterexplained.com/articles/using-json-to-exchange-data/ 如果您决定采用Flex / AS3路线,那么正如jsight所说,as3corelib是一个不错的起点。 |