Tôi muốn lưu trữ một số lớp để xml:Lưu trữ Danh sách <String> với XStream với những cái tên được xác định
XStream xstream = new XStream(new DomDriver());
List<String> modules = new ArrayList<String>();
modules.add("mod1");
modules.add("mod2");
ModulesConfig modulesConfig = new ModulesConfig(modules);
xstream.processAnnotations(ModulesConfig.class);
log.info(xstream.toXML(modulesConfig));
Lớp ModulesConfig:
@XStreamAlias("modules-config")
public class ModulesConfig {
@XStreamAlias("moduleName")
private List<String> moduleNames;
public ModulesConfig(List<String> moduleNames) {
this.moduleNames = moduleNames;
}
public List<String> getModuleNames() {
return moduleNames;
}
public void setModuleNames(List<String> moduleNames) {
this.moduleNames = moduleNames;
}
}
Kết quả:
<modules-config>
<moduleName>
<string>mod1</string>
<string>mod2</string>
</moduleName>
</modules-config>
Nhưng tôi muốn các yếu tố được đặt tên là "moduleName". Làm thế nào để cấu hình xstream hoặc những gì chú thích tôi phải thêm vào lớp học? Tôi muốn kết quả như vậy:
<modules-config>
<moduleNames>
<moduleName>mod1</moduleName>
<moduleName>mod2</moduleName>
</moduleNames>
</modules-config>
bản sao có thể có của [tùy chỉnh tuần tự hóa các bộ sưu tập java bằng cách sử dụng xstream] (http://stackoverflow.com/questions/1791178/customising-serialisation-of-java-collections-using-xstream) –
Đọc [this] (http : //xstream.codehaus.org/alias-tutorial.html) – mre