Flex - Сериализация XML и десериализация структур вложенных объектов - PullRequest
1 голос
/ 06 ноября 2008

Наше приложение Flex хотело бы работать с запросами и ответами в виде графов объектов (там нет ничего необычного), например. ответ становится моделью некоторого представления и будет представлять собой структуру с несколькими уровнями вложенности.

** Теперь, в идеале, мы хотели бы использовать одни и те же клиентские (и серверные) объекты стороны для разных форматов сообщений, например. XML и AMF и имеют подключаемый уровень сериализации / десериализации (!)

AMF имеет сериализацию и сопоставление клиента с сервером с использованием [RemoteClass (псевдоним = "samples.contact.Contact")] но, похоже, нет эквивалента для XML.

Я (несколько оптимистично) ищу аккуратный способ сериализации графа объектов в XML для отправки через HTTPService от клиента.

Для ответов по умолчанию «object» и «E4X» обеспечивают некоторую десериализацию. Это удобно, но, конечно, у нас нет тонкостей распаковывать XML обратно в определенные классы AS, как мы делаем с AMF.

Есть предложения? (была одна идея о переносе / приведении объекта в XML или XMLList - это, похоже, не работает)

Обновление:

Обе эти библиотеки выглядят полезными, и я, скорее всего, в какой-то момент буду их использовать.

Пока мне действительно нужна простота повторного использования набора метаданных для сериализации AMF3, который мы используем в любом случае ([RemoteClass], [Transient])

.. поэтому на данный момент лучшим вариантом является AMFX - использовать Flex Data Services для передачи AMF с использованием XML - классов в пакете mx.messaging.channels.amfx - на данный момент единственным недостатком является то, что любой класс Externalizable преобразуется в Hex поток байтов - и ArrayCollection является Externalizable! (в надежде обойти это путем сериализации внутреннего массива в подклассе ..)

Надеюсь, это кому-нибудь пригодится ..

Ответы [ 4 ]

5 голосов
/ 11 ноября 2008

Что касается сериализации Xml, я могу дать вам отправную точку (как бы это ни было предвзято, хотя: D).

Я работаю над проектом, который позволяет автоматически преобразовывать объекты AS3 в xml и обратно. Он в основном использует аннотации к объектам модели, которые вы используете для связи, чтобы создать структуру xml или заполнить объект из xml.

Он называется FlexXB, и вы можете проверить его на http://code.google.com/p/flexxb/. Я начал этот проект, потому что столкнулся с теми же проблемами на работе (а именно, у меня есть сервер, который общается через xml), и я надеялся, что он пригодится кому-то еще.

Приветствия

Alex

2 голосов
/ 29 сентября 2009

Еще один проект: FleXMLer (http://code.google.com/p/flexmler/).
Он имеет прямое отношение asx3m, где вы можете просто позвонить:

new FleXMLer().serialize(obj);

Или вы можете настроить имена элементов XML, пропустить элементы и настроить способ сериализации массивов и хеш-таблиц. Буду признателен за ваш вклад.

1 голос
/ 28 ноября 2008

оформить заказ на проект asx3m на http://code.google.com/p/asx3m Это порт AS3 библиотеки сериализации Java XStream, который работает довольно хорошо. Я сделал это потому, что мне нужно было подключиться к серверной платформе, которая использовала XStream для обмена объектами данных, и вложил в нее много работы. Он может быть расширен для сериализации объектов AS3 в любом формате (например, JSON) и может использовать возможности пользовательских метатегов. Cheers,

Томислав

0 голосов
/ 06 ноября 2008

Также есть библиотека, в том числе JSON, от Adobe. А поскольку ActionScript является расширенным набором JavaScript ... и JSON все чаще поддерживается кросс-фреймворком ...

...