如何重命名XStream列表元素?

Hok*_*ood 4 java xstream xml-serialization

我的模型看起来像:

@XStreamAlias("article")
class Article {
  List<String> tags;
  List<String> categories;
}
Run Code Online (Sandbox Code Playgroud)

XStream序列化为XML,如下所示:

<article>
  <tags>
    <string>foo</string>
  </tags>
  <categories>
    <string>bar</string>
  </categories>
</article>
Run Code Online (Sandbox Code Playgroud)

我的问题是如何让这个<string>foo</string>成为<tag>foo<tag>和<string>bar</string>变<category>bar</category>?我无法更改模型的结构,因为我使用Morphia ODM来创建文章实例(文章必须包含List<String>).

pho*_*ser 5

这篇文章可能对你有用.

果壳版:

ClassAliasingMapper mapper = new ClassAliasingMapper(stream.getMapper());
mapper.addClassAlias("tag", String.class);
mapper.addClassAlias("category", String.class);
stream.registerLocalConverter(Article.class, "tags", new CollectionConverter(mapper));
stream.registerLocalConverter(Article.class, "categories", new CollectionConverter(mapper));
Run Code Online (Sandbox Code Playgroud)