Question

J'ai un script qui récupère des objets d'un serveur distant via un appel Ajax.Le serveur renvoie les objets en notation JSON.

Cependant, dans Adobe AIR, il existe une restriction sur l'utilisation évaluation() pour des raisons de sécurité.Je peux donc obtenir des réponses du serveur distant, mais je ne peux pas les reconvertir en objets JavaScript.Existe-t-il une solution de contournement à ce problème ?J'aimerais utiliser JSON pour mes objets JavaScript, car il peut être utilisé presque immédiatement.

Note latérale :Je comprends les implications en matière de sécurité pour forcer le problème, mais je ferai du développement rapide d'applications pour un concours, de sorte que le programme ne serait qu'un prototype rapide et ne serait pas utilisé à des fins de production.Néanmoins, ce serait formidable s'il existe une meilleure alternative à ce que j'essaie de faire maintenant.


Mise à jour:

Grâce à Théo et jsight pour leurs réponses ;

Une chose importante que j'ai apprise aujourd'hui est que je peux réellement utiliser les bibliothèques ActionScript en utilisant le

<script src="lib/myClasses.swf" type="application/x-shockwave-flash"></script>
balise étendue par Adobe AIR.Vérifier Théo lien pour plus de détails !

Était-ce utile?

La solution

Vous pouvez trouver un Analyseur JSON écrit en JavaScript ici (le code source ici).Vous pouvez également utiliser l'analyseur JSON as3corelib à partir de JavaScript, il y a une description de la façon d'accéder aux bibliothèques ActionScript à partir de JavaScript ici.

Autres conseils

La version AIR actuelle (v2.5) regroupe un WebKit plus récent prenant en charge JSON natif, via JSON.stringify() et JSON.parse().

As-tu regardé as3corelib?Il semble fournir un analyseur AS3 pour les données JSON, et j'espère qu'il ne repose pas sur eval (eval a tendance à être mauvais pour la sécurité, comme vous l'avez noté).Il existe également des bibliothèques similaires pour Javascript, et elles ont tendance à être le moyen préféré pour analyser JSON en raison des implications de sécurité liées à l'appel d'eval sur des données (potentiellement) malveillantes.

JSON est Javascript Object Notation, donc si vous utilisez Javascript, vous y êtes déjà !Jetez un œil à ces liens, ils donnent des exemples de création d'objets Javascript à partir de JSON :

http://www.hunlock.com/blogs/Mastering_JSON_(_JavaScript_Object_Notation_)

http://betterexplained.com/articles/using-json-to-exchange-data/

Si vous décidez d'emprunter la voie Flex / AS3, alors comme le dit jsight, as3corelib est un bon point de départ.

Je pense que cela est possible si vous utilisez un pont iframe et sandbox.Vous devriez pouvoir exécuter eval() sur le code téléchargé dans l'iframe sandbox,

Extrait Documents Adobe AIR 1.1"...il peut être plus pratique d'exécuter le contenu dans un cadre enfant en bac à sable afin que le contenu puisse être exécuté sans restrictions sur eval()..."

Un autre article connexe : S'appuyer sur AIR :Travailler avec les ponts Sandbox

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top