2008-11-06 12 views
1

Notre application Flex aimerait travailler avec des requêtes et des réponses sous forme de graphiques d'objets (rien d'inhabituel ici). la réponse devient le modèle d'une vue, et serait une structure avec plusieurs couches d'imbrication. ** Maintenant, idéalement, nous aimerions utiliser les mêmes objets côté client (et serveur) pour différents formats de message, par ex. XML et AMF, et une couche sérialisation connectable/désérialisation (!)Flex - Sérialisation XML et dé-sérialisation des structures d'objets imbriquées

AMF a sérialisation et la correspondance du client au serveur en utilisant [RemoteClass (alias = "samples.contact.Contact")] mais il semble il n'y a pas d'équivalent pour XML.

Je suis (avec un peu d'optimisme) à la recherche d'une manière soignée de sérialiser le graphe d'objet en XML, pour envoyer via un HTTPService depuis le client.

Pour les réponses, 'object' et 'E4X' par défaut fournissent une désérialisation. C'est pratique, mais bien sûr, nous n'avons pas les avantages de décompresser le XML dans des classes AS spécifiques comme nous le faisons avec AMF.

Des suggestions? (a eu une idée venir à travers à propos de l'objet emballage/coulée en XML ou XMLList - cela ne semble pas fonctionner, cependant)

Mise à jour:

Ces deux bibliothèques regarder utiles, et je les utilise très probablement à un moment donné.

Pour l'instant, j'ai vraiment besoin la simplicité de réutiliser l'ensemble de métadonnées pour la sérialisation AMF3 que nous utilisons dans tous les cas ([RemoteClass], [transitoire])

.. donc la meilleure option le moment est AMFX - utilisé Flex Data Services pour le transfert AMF en utilisant XML - classes dans le paquetage mx.messaging.channels.amfx - seul inconvénient pour le moment est que toute classe Externalizable est transformée en un flux d'octets Hex - et ArrayCollection est Externalizable! (Dans l'espoir de contourner par sérialisation le tableau interne dans une sous-classe ..)

Espoir qui est utile à quelqu'un ..

Répondre

0

Il y a une bibliothèque dont JSON disponible auprès d'Adobe, aussi. Et puisque ActionScript est un sur-ensemble de JavaScript ... et JSON est de plus en plus supporté cross-framework ...

5

En ce qui concerne la sérialisation Xml je peux vous donner un point de départ (aussi biaisé que cela puisse être, bien que: D).

Je travaille sur un projet qui permet la conversion automatique d'objets AS3 vers et depuis xml. Il utilise essentiellement des annotations sur les objets de modèle que vous utilisez pour la communication afin de construire la structure xml ou de remplir un objet à partir de xml.

Il est appelé FlexXB et vous pouvez le vérifier à http://code.google.com/p/flexxb/. J'ai commencé ce projet parce que j'ai eu les mêmes problèmes au travail (à savoir que j'ai un serveur qui communique via xml) et j'espérais qu'il serait utile à quelqu'un d'autre.

Cheers,

Alex

1

projet de commande de asx3m à http://code.google.com/p/asx3m Il est un port AS3 de la bibliothèque de sérialisation Java XStream et fonctionne assez bien. Je l'ai fait parce que je devais me connecter à une plate-forme serveur qui utilisait XStream pour échanger des objets de données et y mettre beaucoup de travail. Il peut être étendu pour sérialiser des objets AS3 à n'importe quel format (JSON par exemple) et pourrait tirer parti de la puissance des métabalises définies par l'utilisateur. Vive,

Tomislav

2

Encore un autre projet: FleXMLer (http://code.google.com/p/flexmler/).
Il a à la fois l'attitude directe de asx3m où vous pouvez simplement appeler:

new FleXMLer().serialize(obj);

Ou vous pouvez personnaliser les noms d'éléments XML, ignorer les éléments et les modifier tableaux de manière et les tables de hachage sont sérialisés. J'apprécierais votre contribution.

Questions connexes