【问题标题】:Flex - XML Serialization and De-Serialization of nested Object structuresFlex - 嵌套对象结构的 XML 序列化和反序列化
【发布时间】:2010-09-21 04:00:42
【问题描述】:

我们的 Flex 应用程序希望以对象图的形式处理请求和响应(没有什么不寻常的),例如response 成为某个视图的模型,并且会是一个有多层嵌套的结构。

** 现在,理想情况下,我们希望将相同的客户端(和服务器)端对象用于不同的消息格式,例如XML 和 AMF,并具有可插入的序列化/反序列化层 (!)

AMF 使用序列化和匹配客户端到服务器 [RemoteClass(alias="samples.contact.Contact")] 但似乎 XML 没有等价物。

我(有点乐观)正在寻找一种将对象图序列化为 XML 的简洁方法,以通过 HTTPService 从客户端发送。

对于响应,默认的“object”和“E4X”提供了一些反序列化。这很方便,但是我们当然没有像使用 AMF 那样将 XML 解包回特定的 AS 类的技巧。

有什么建议吗? (确实有一个想法是将对象包装/转换为 XML 或 XMLList - 但是这似乎不起作用)

更新:

这两个库看起来都很有用,我很可能会在某个时候使用它们。

现在,我真的需要简单地重新使用我们在任何情况下都使用的 AMF3 序列化的元数据集([RemoteClass],[Transient])

.. 所以目前最好的选择是 AMFX - 使用 Flex Data Services 使用 XML 进行 AMF 传输 - mx.messaging.channels.amfx 包中的类 - 目前唯一的缺点是任何 Externalizable 类都转换为十六进制字节流 - 并且 ArrayCollection 是可外部化的! (希望通过序列化子类中的内部数组来解决..)

希望对某人有用..

【问题讨论】:

    标签: apache-flex actionscript-3 xml-serialization


    【解决方案1】:

    Adobe 也提供了一个包含 JSON 的库。而且由于 ActionScript 是 JavaScript 的超集……而且 JSON 越来越受到跨框架的支持……

    【讨论】:

      【解决方案2】:

      关于 Xml 序列化,我可以为您提供一个起点(尽管可能有偏见:D)。

      我正在开发一个允许将 AS3 对象自动转换为 xml 和从 xml 转换的项目。它基本上在用于通信的模型对象上使用注释,以便构造 xml 结构或从 xml 填充对象。

      它被称为 FlexXB,您可以通过 http://code.google.com/p/flexxb/ 查看它。 我开始这个项目是因为我在工作中遇到了同样的问题(即我有一个通过 xml 通信的服务器),我希望它对其他人有用。

      干杯,

      亚历克斯

      【讨论】:

        【解决方案3】:

        http://code.google.com/p/asx3m 结帐 asx3m 项目 它是 Java XStream 序列化库的 AS3 端口,运行良好。 我成功了,因为我必须连接到使用 XStream 交换数据对象的服务器平台,并在其中投入了大量工作。 它可以扩展为将 AS3 对象序列化为任何格式(例如 JSON),并且可以利用用户定义的元标记的强大功能。 干杯,

        托米斯拉夫

        【讨论】:

          【解决方案4】:

          又一个项目:FleXMLer (http://code.google.com/p/flexmler/)。
          它既具有 asx3m 的直截了当的态度,您可以直接调用:

          new FleXMLer().serialize(obj);

          或者您可以自定义 XML 元素名称、跳过元素并调整数组和哈希表的序列化方式。 非常感谢您的意见。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2023-04-05
            • 1970-01-01
            • 2018-09-21
            相关资源
            最近更新 更多