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

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

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

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


Обновить:

Спасибо Тео и Джейситу за их ответы;

Одна важная вещь, которую я узнал сегодня, - это то, что я действительно могу использовать библиотеки ActionScript, используя

<script src = "lib / myClasses.swf" type = "application / x-shockwave-flash"> </ script>
тег расширен Adobe AIR. Проверьте ссылку Тео для более подробной информации!

22.08.2008 02:26:26
5 ОТВЕТОВ
РЕШЕНИЕ

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

7
24.08.2008 08:11:29

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

2
22.08.2008 03:25:15

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 - хорошее место для старта.

0
22.08.2008 11:26:32

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

Выдержка из документа Adobe AIR 1.1 Doc: «... может быть удобнее запускать контент в изолированном дочернем фрейме, чтобы контент мог работать без ограничений по eval () ...»

Другая связанная статья: Основываясь на AIR: Работа с Мостами Песочницы

0
25.08.2008 18:39:22

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

3
24.12.2010 06:19:52