Flex - XML-сериализация и десериализация структур вложенных объектов

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

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

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

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

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

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

Обновлять:

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

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

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

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

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
0
10 491
4

Ответы 4

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

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

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

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

Ваше здоровье,

Алекс

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

Томислав

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

new FleXMLer().serialize(obj);

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

Другие вопросы по теме