我正在使用XStream,并且有一个类如下的字段:
private Map data;
我想生成这样的XML输出:
test data
test data
test data
所以我希望map键成为元素. mapvalue是XML值,我不希望XML包含在< data>< / data>等元素中.任何人都可以指向执行此操作的示例代码或类似的东西吗?
UPDATE
这只是一个片段,有一个根元素.
更新2
我发布的自定义转换器代码几乎可以使用.我得到一个扁平的结构,但我需要删除外部元素.有什么想法吗?
//this is the result need to remove
test data
test data
test data
这是代码
public class MapToFlatConverter implements Converter{
public MapToFlatConverter() {
}
@Override
public boolean canConvert(Class type) {
return Map.class.isAssignableFrom(type);
}
@Override
public void marshal(Object source, HierarchicalStreamWriter writer, MarshallingContext context) {
Map map = (Map) source;
for (Map.Entry entry : map.entrySet()) {
writer.startNode(entry.getKey());
writer.setValue(entry.getValue().toString());
writer.endNode();
}
}
@Override
public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext context) {
//not needed at this time
return null;
}
}
如果觉得《java list 自定义类型转换_java – 可以从List生成平面XML结构的XStream自定义转换器?...》对你有帮助,请点赞、收藏,并留下你的观点哦!