Adobe AIR: обработка объектов JSON с сервера

У меня есть сценарий, который извлекает объекты с удаленного сервера через вызов Ajax. Сервер возвращает объекты в нотации JSON.

Однако в Adobe AIR существует ограничение на использование eval () по соображениям безопасности. Таким образом, я могу получать ответы с удаленного сервера, но не могу превратить их обратно в объекты JavaScript. Есть ли способ решения этой проблемы? Я хотел бы использовать JSON для своих объектов JavaScript, так как его можно использовать практически сразу.

Примечание: я понимаю последствия для безопасности при возникновении проблемы, но я буду быстро разрабатывать приложение для конкурса, поэтому программа будет только быстрым прототипом и не будет использоваться в производственных целях. Тем не менее, было бы здорово, если бы была лучшая альтернатива тому, что я пытаюсь сделать сейчас.


Обновление:

Благодаря Тео и jsight за их ответы;

One important thing I learnt today is that I can actually make use of ActionScript libraries by using the

<script src="lib/myClasses.swf" type="application/x-shockwave-flash"></script>
tag extended by Adobe AIR. Check out Theo's link for more details!


person pkchukiss    schedule 22.08.2008    source источник


Ответы (5)


Здесь вы можете найти парсер JSON, написанный на JavaScript (исходный код здесь). Вы также можете использовать синтаксический анализатор JSON as3corelib из JavaScript, есть описание как получить доступ к библиотекам ActionScript из JavaScript здесь.

person Theo    schedule 24.08.2008

Текущий выпуск AIR (v2.5) объединяет новый WebKit, который имеет встроенную поддержку JSON, через JSON.stringify () и JSON.parse ().

person Chris Dolan    schedule 24.12.2010

Вы смотрели as3corelib? Похоже, что он предоставляет парсер AS3 для данных JSON, и я надеюсь, что он не полагается на eval (eval имеет тенденцию быть плохим для безопасности, как вы заметили). Существуют аналогичные библиотеки для Javascript, и они, как правило, являются предпочтительным способом синтаксического анализа json из-за последствий для безопасности вызова eval для (потенциально) вредоносных данных.

person jsight    schedule 22.08.2008

JSON - это нотация объектов Javascript, поэтому, если вы используете Javascript, вы уже там! Взгляните на эти ссылки, они дают примеры того, как создавать объекты Javascript из JSON:

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

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

Если вы решите пойти по маршруту Flex / AS3, то, как сказано в jsight, as3corelib - хорошее место для начала.

person Mark Ingram    schedule 22.08.2008

Я думаю, что это возможно, если вы используете мост iframe и песочницу. Вы должны иметь возможность запускать eval () для загруженного кода в изолированном фрейме iframe,

Выдержка из person John Lemberger    schedule 25.08.2008