我正在使用 Simple (http://simple.sourceforge.net/) 库来编组/解组 Java 中的 XML 数据。对于我的一些比较复杂的数据结构,我需要编写自己的转换器。例如,假设我有一个List<List<String>>
我需要编组的。我写了以下内容:
class WorldObject {
@Element(name="vector-names")
@Convert(ListListConverter.class)
private List<List<String>> vectorNames;
/** Constructor and other details ... **/
}
与 ListListConverter 一起(我暂时省略了解组器):
class ListListConverter implements Converter<List<List<String>>> {
@Override
public List<List<String>> read(InputNode node) throws Exception {
// stub
return null;
}
@Override
public void write(OutputNode node, List<List<String>> value)
throws Exception {
node.setName("list-list-string");
for (List<String> list : value) {
OutputNode subList = node.getChild("list-string");
for (String str : list) {
OutputNode stringNode = subList.getChild("string");
stringNode.setValue(str);
}
subList.commit();
}
node.commit();
}
}
此设置工作正常,并生成我想要的 XML。但是,我希望能够访问@Element
注解的name
字段,以便可以为标签指定指定名称(在本例中为"vector-names"
),而不是默认名称 ( "list-list-string"
)。这就是对 Simple 开箱即用处理的所有类型进行编组的方式,因此必须有一种方法可以从自定义 Converter 访问该数据。
我怎样才能做到这一点?