Domanda

Ho uno script che recupera oggetti da un server remoto tramite una chiamata Ajax.Il server restituisce oggetti in notazione JSON.

Tuttavia, in Adobe AIR esiste una limitazione all'utilizzo valutazione() per motivi di sicurezza.Quindi sono in grado di ottenere risposte dal server remoto, ma non posso trasformarle nuovamente in oggetti JavaScript.Esiste una soluzione alternativa a questo problema?Vorrei utilizzare JSON per i miei oggetti JavaScript, poiché può essere utilizzato quasi immediatamente.

Nota a margine :Comprendo le implicazioni sulla sicurezza derivanti dall'imposizione del problema, ma svolgerò un rapido sviluppo dell'applicazione per una competizione, quindi il programma sarebbe solo un prototipo veloce e non verrà utilizzato per scopi di produzione.Tuttavia, sarebbe fantastico se esistesse un'alternativa migliore a ciò che sto cercando di fare ora


Aggiornamento:

Grazie a Teo E jsight per le loro risposte;

Una cosa importante che ho imparato oggi è che posso effettivamente utilizzare le librerie ActionScript utilizzando il file

<script src="lib/myClasses.swf" type="application/x-shockwave-flash"></script>
tag esteso da Adobe AIR.Guardare Di Teo collegamento per maggiori dettagli!

È stato utile?

Soluzione

Puoi trovare un Parser JSON scritto in JavaScript qui (codice sorgente qui).Puoi anche utilizzare il parser JSON as3corelib da JavaScript, c'è una descrizione di come accedere alle librerie ActionScript da JavaScript qui.

Altri suggerimenti

L'attuale versione AIR (v2.5) include un WebKit più recente con supporto JSON nativo, tramite JSON.stringify() e JSON.parse().

Hai guardato? as3corelib?Sembra fornire un parser AS3 per i dati JSON e la mia speranza è che non si basi su eval (eval tende a essere dannoso per la sicurezza, come hai notato).Esistono librerie simili anche per Javascript e tendono ad essere il modo preferito per analizzare json a causa delle implicazioni sulla sicurezza della chiamata eval su dati (potenzialmente) dannosi.

JSON è Javascript Object Notation, quindi se stai usando Javascript sei già lì!Dai un'occhiata a questi collegamenti, forniscono esempi di come creare oggetti Javascript da JSON:

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

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

Se decidi di seguire il percorso Flex / AS3, come ha detto jsight, as3corelib è un buon punto di partenza.

Penso che questo sia possibile se usi un iframe e un bridge sandbox.Dovresti essere in grado di eseguire eval() sul codice scaricato nell'iframe sandbox,

Estratto da Documenti di Adobe AIR 1.1"...potrebbe essere più conveniente eseguire il contenuto in un frame figlio sandbox in modo che il contenuto possa essere eseguito senza restrizioni su eval()..."

Un altro articolo correlato: Basandosi sull'ARIA:Lavorare con i Sandbox Bridge

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top