【发布时间】:2014-06-16 15:10:10
【问题描述】:
我们正在使用 XStream 来序列化和反序列化实体。如果实体是持久化的,它们有一个 ID,并且对象的序列化形式只是 ID,它可能看起来像:
<Person>4</Person>
“反序列化”只是从数据库中读取操作。
这很好地实现了SingleValueConverter,它使用 DAO 加载实体:
public class TestSerializer implements SingleValueConverter {
public Object fromString(String str) {
return dao.readById(str);
}
public String toString(Object obj) {
return ((Entity) obj).getId();
}
}
但在某些情况下,必须序列化的实体不会被持久化。所以他们没有ID,我必须做一个“真正的”序列化。因为 XStream 知道如何自己序列化许多对象,而且我不关心 XML 结果的结构,所以如果我能得到这样的东西就好了:
<Person>
<name>Jon Doe</name>
</Person>
那么是否可以在自定义转换器实现中进行这种序列化和反序列化?
【问题讨论】:
标签: java serialization xstream