使用最少的代码编写将Java对象序列化为Map(并解析回)的最快方法是什么?

时间:2010-07-21 14:14:49

标签: java serialization xml-serialization

我有一个系统,实体(来自数据库,通过ORM表示为Java对象)将由XML-RPC客户端读取,我现有的方法是通过StructSerializer序列化它们,在其代码中,我们从Java对象中读取属性,包括调用另一个StructSerializer来序列化/解析属性,例如

Surrogate parse(Map<String, Object> in) {
  String name = in.get(Surrogate.NAME, String.class);
  ...
}

Map<String, Object> serialize(Surrogate in) {
  out.put(Surrogate.ID, in.getId());
  out.put(Surrogate.USER, userSerializer.serialize(in.getUser()))
}

我现在要看的是消除/自动化/最小化编写此类代码。此外,XML-RPC兼容并不是真正的问题。

非常感谢。

编辑:

进一步详细说明,XML转换是由Apache XML-RPC处理的,我只需要在Map中转储它就可以了。我现在需要的是将Java对象转换为Map的统一/公认的方式。

3 个答案:

答案 0 :(得分:3)

我对搜索进行了优化,发现:How to convert a Java object (bean) to key-value pairs (and vice versa)?

这表明BeanUtils是一个很好的解决方案。

答案 1 :(得分:0)

我喜欢XStream进行这类工作 - http://x-stream.github.io/

您所要做的就是注释您的类并将它们提供给XStream序列化器/反序列化器。您可能希望注释特定字段以调整输出,但通常不需要。

答案 2 :(得分:0)

如果您不需要兼容,则有多种选择:XMLEncoderXStreamCastor。它们都需要很少的代码来编写,除非你需要一些花哨的东西。 XMLEncoder包含在JRE中,其他则是附加库。

相关问题