代码之家  ›  专栏  ›  技术社区  ›  sehugg

XStream<->其他二进制格式(例如协议缓冲区)

  •  3
  • sehugg  · 技术社区  · 16 年前

    我们目前使用XStream对web服务的输入/输出进行XML编码。不过,考虑到我们的客户机更容易支持二进制编码(包括二进制编码等),这使得我们的客户机更容易支持二进制编码。

    然而,服务器上的大多数对象都是pojo,XStream通过反射和注释处理序列化,而且这些库中的大多数都假定它们将自己生成pojo。我可以想出几种方法来连接另一个库:

    1. 编写自定义代码以将pojo封送到备用库生成的类中或从中封送pojo。

    2. 使用另一个同时支持反射(如XStream)和代码生成的库。

    但是我不确定是哪一个 serialization library 最适合以上技术。

    1 回复  |  直到 16 年前
        1
  •  1
  •   Kannan Goundan    15 年前

    (1) 可能不是 因为许多序列化库都包含一个helperapi,它知道如何读/写原语值和分隔符,所以需要做很多工作。

    (2) 可能为您提供了最广泛的工具选择: https://github.com/eishay/jvm-serializers/wiki/ToolBehavior https://github.com/eishay/jvm-serializers/wiki

    这些工具中的许多工具都生成类,这需要编写代码来转换到/从POJO转换。直接使用POJO的工具通常不是语言中立的。

    (4) 在 Protostuff library (支持协议缓冲区格式)允许您 write a "schema" 描述您希望如何序列化pojo。但是编写这个模式可能会比仅仅编写代码来在POJO和某些工具生成的类之间进行转换要复杂得多,也更容易出错。

    原物也可以 automatically generate a schema