2008-08-22 21 views
5

Tengo un script que recupera objetos de un servidor remoto a través de una llamada Ajax. El servidor devuelve objetos en notación JSONAdobe AIR: Manejo de objetos JSON del servidor

Sin embargo, en Adobe AIR, existe una restricción sobre el uso de eval() por razones de seguridad. Así que puedo obtener respuestas del servidor remoto, pero no puedo volver a convertirlas en objetos de JavaScript. ¿Hay alguna solución para este problema? Me gustaría usar JSON para mis objetos JavaScript, ya que se puede usar casi de inmediato.

Nota al margen: entiendo las implicaciones de seguridad para forzar el problema, pero haré un rápido desarrollo de aplicaciones para una competencia, por lo que el programa sería solo un prototipo rápido y no se usaría para fines de producción. Sin embargo, sería muy bueno si hay una mejor alternativa a lo que estoy tratando de hacer ahora


Actualización:

Gracias a Theo y jsight por sus respuestas;

Una cosa importante que aprendí hoy es que realmente puedo hacer uso de las bibliotecas de ActionScript utilizando la etiqueta

<script src="lib/myClasses.swf" type="application/x-shockwave-flash"></script>
extendida por Adobe AIR. ¡Visite el enlace Theo's para obtener más detalles!

Respuesta

2

¿Has mirado as3corelib? Parece proporcionar un analizador AS3 para datos JSON, y espero que no se base en la evaluación (la evaluación tiende a ser mala para la seguridad, como anotó). También existen libs similares para Javascript, y tienden a ser la forma preferida de analizar json debido a las implicaciones de seguridad de llamar a eval sobre (potencialmente) datos maliciosos.

0

Creo que esto es posible si usa un iframe y un puente de sandbox. Usted debe ser capaz de ejecutar eval() el código descargado en el iframe de espacio aislado,

Extracto de Adobe AIR 1.1 Doc's " ... puede ser más conveniente para ejecutar el contenido en un marco secundario de espacio aislado para que el contenido se puede ejecutar con no hay restricciones a eval() ..."

Otro artículo relacionado: Building on AIR: Working with the Sandbox Bridges

3

La liberación de aire actual (v2.5) Los bloques WebKit una nueva que cuenta con el apoyo JSON nativo, a través de JSON.stringify() y JSON .analizar gramaticalmente().

Cuestiones relacionadas