Pregunta

Tengo un script que recupera objetos de un servidor remoto mediante una llamada Ajax.El servidor devuelve objetos en notación JSON.

Sin embargo, en Adobe AIR, existe una restricción en el uso evaluar() por razones de seguridad.Entonces puedo obtener respuestas del servidor remoto, pero no puedo volver a convertirlas en objetos JavaScript.¿Existe 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 que implica forzar el problema, pero haré un desarrollo rápido de aplicaciones para una competencia, por lo que el programa será solo un prototipo rápido y no se usará con fines de producción.Sin embargo, sería fantástico si hubiera una alternativa mejor a lo que estoy intentando hacer ahora.


Actualizar:

Gracias a teo y vista por sus respuestas;

Una cosa importante que aprendí hoy es que puedo hacer uso de las bibliotecas de ActionScript usando el

<script src="lib/myClasses.swf" type="application/x-shockwave-flash"></script>
etiqueta extendida por Adobe AIR.Verificar teo enlace para más detalles!

¿Fue útil?

Solución

Puedes encontrar un Analizador JSON escrito en JavaScript aquí (código fuente aquí).También puede utilizar el analizador JSON as3corelib desde JavaScript, hay una descripción de cómo acceder a las bibliotecas de ActionScript desde JavaScript aquí.

Otros consejos

La versión actual de AIR (v2.5) incluye un WebKit más nuevo que tiene soporte JSON nativo, a través de JSON.stringify() y JSON.parse().

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

JSON es notación de objetos de Javascript, por lo que si estás utilizando Javascript, ¡ya lo estás!Eche un vistazo a estos enlaces, que dan ejemplos de cómo crear objetos Javascript a partir de JSON:

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

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

Si decide seguir la ruta Flex/AS3, entonces, como dice jsight, as3corelib es un buen lugar para comenzar.

Creo que esto es posible si usas un iframe y un puente sandbox.Debería poder ejecutar eval() en el código descargado en el iframe de espacio aislado,

Extracto de Documentos de Adobe AIR 1.1"...puede ser más conveniente ejecutar contenido en un marco secundario aislado para que el contenido pueda ejecutarse sin restricciones en eval()..."

Otro artículo relacionado: Construyendo sobre AIRE:Trabajar con los puentes Sandbox

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top