1

私たちの Flex アプリは、リクエストとレスポンスをオブジェクト グラフとして扱いたいと考えています (そこに異常はありません)。たとえば、レスポンスはビューのモデルになり、いくつかのネスト レイヤーを持つ構造になります。

** 理想的には、XML や AMF などの異なるメッセージ形式に同じクライアント (およびサーバー) 側のオブジェクトを使用し、プラグ可能なシリアライゼーション/デシリアライゼーション レイヤーを使用したいと考えています (!)

AMF には [RemoteClass(alias="samples.contact.Contact")] を使用してクライアントとサーバーのシリアル化と照合がありますが、XML に相当するものはないようです。

クライアントから HTTPService を介して送信するために、オブジェクト グラフを XML にシリアル化するきちんとした方法を (やや楽観的に) 探しています。

応答の場合、デフォルトの「オブジェクト」と「E4X」は、一部の逆シリアル化を提供します。これは便利ですが、もちろん、AMF の場合のように XML を特定の AS クラスにアンパックする機能はありません。

助言がありますか?(オブジェクトを XML または XMLList としてラップ/キャストすることについて 1 つのアイデアが思い浮かびましたが、これは機能していないようです)

アップデート:

これらのライブラリはどちらも便利そうで、いつか使用する可能性が非常に高いです。

今のところ、どのような場合でも使用している AMF3 シリアライゼーション用のメタデータ セットを再利用するシンプルさが本当に必要です ([RemoteClass],[Transient])。

.. したがって、現時点で最良のオプションは AMFX です - XML を使用した AMF 転送に Flex Data Services を使用します - mx.messaging.channels.amfx パッケージのクラス - 現時点での唯一の欠点は、Externalizable クラスが Hex バイト ストリームに変換されることです -そして ArrayCollection は外部化可能です! (サブクラスで内部配列をシリアル化することで回避策を期待しています..)

それが誰かに役立つことを願っています..

4

4 に答える 4

5

Xmlのシリアル化に関して、私はあなたに出発点を与えることができます(ただし、バイアスがかかっているかもしれませんが:D)。

AS3オブジェクトをxmlとの間で自動変換できるプロジェクトに取り組んでいます。基本的に、xml構造を構築したり、xmlからオブジェクトを作成したりするために、通信に使用するモデルオブジェクトに注釈を使用します。

これはFlexXBと呼ばれ、http: //code.google.com/p/flexxb/で確認できます。私はこのプロジェクトを開始しました。仕事で同じ問題が発生しました(つまり、xmlを介して通信するサーバーがあります)。他の誰かに役立つことを望んでいました。

乾杯、

アレックス

于 2008-11-11T12:39:09.033 に答える
2

さらに別のプロジェクト: FleXMLer ( http://code.google.com/p/flexmler/ )。
次のように呼び出すことができる asx3m の率直な態度の両方を備えています。

new FleXMLer().serialize(obj);

または、XML 要素名をカスタマイズしたり、要素をスキップしたり、配列やハッシュ テーブルをシリアル化する方法を調整したりできます。ご意見をお待ちしております。

于 2009-09-28T22:24:39.637 に答える
1

http://code.google.com/p/asx3mでasx3m プロジェクトを確認してください 。これは、Java XStream シリアル化ライブラリの AS3 ポートであり、非常にうまく機能します。これを作成したのは、データ オブジェクトの交換に XStream を使用するサーバー プラットフォームに接続し、多くの作業を行う必要があったためです。AS3 オブジェクトを任意の形式 (JSON など) にシリアル化するように拡張でき、ユーザー定義のメタタグの機能を活用できます。乾杯、

トミスラフ

于 2008-11-28T12:54:14.110 に答える
0

Adobe から入手できる JSON を含むライブラリもあります。また、ActionScript は JavaScript のスーパーセットであるため、JSON はますますクロスフレームワークでサポートされるようになっています...

于 2008-11-06T20:52:23.313 に答える