javascript - array - Adobe AIR: manejo de objetos JSON desde el servidor
json stringify() ajax (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 JSON.
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 genial si hay una mejor alternativa a lo que estoy tratando de hacer ahora
Actualizar:
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 usando el
<script src="lib/myClasses.swf" type="application/x-shockwave-flash"></script> etiqueta extendida por Adobe AIR. ¡Mira el enlace de Theo para más detalles!
¿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.
JSON es la notación de objetos de Javascript, ¡así que si usas JavaScript ya estás allí! Echa un vistazo a estos enlaces, dan ejemplos de cómo crear objetos Javascript desde JSON:
http://www.hunlock.com/blogs/Mastering_JSON_(_JavaScript_Object_Notation_)
http://betterexplained.com/articles/using-json-to-exchange-data/
Si decide ir a la ruta Flex / AS3, como dijo el jsight, as3corelib es un buen lugar para comenzar.
Puede encontrar un analizador JSON escrito en JavaScript aquí ( código fuente aquí ). También puede usar el analizador JSON as3corelib de JavaScript, aquí encontrará una descripción de cómo acceder a las bibliotecas de ActionScript desde JavaScript .
Creo que esto es posible si usas un iframe y un puente de sandbox. Debería poder ejecutar eval () en el código descargado en el iframe de espacio aislado,
Extracto de Doc de Adobe AIR 1.1 "... puede ser más conveniente ejecutar contenido en un marco secundario de espacio aislado para que el contenido se pueda ejecutar sin restricciones en eval () ..."
Otro artículo relacionado: Building on AIR: Trabajando con los Sandbox Bridges
La versión actual de AIR (v2.5) agrupa un WebKit más nuevo que tiene compatibilidad nativa con JSON, a través de JSON.stringify () y JSON.parse ().