我有以下 XML:
<appConfig>
<database isSource="true" fizz="129"/>
<database isSource="false" fizz="29494" />
<buzz bee="always" />
</appConfig>
这应该映射到以下 POJO:
public class AppConfig {
private Database sourceDb;
private Database targetDb;
private Buzz buzz;
}
public class Database {
// Omitted for brevity...
}
public class Buzz {
// Omitted for brevity...
}
并配置了以下XStream
映射器:
XStream oxMapper = new XStream();
oxMapper.alias("appConfig", AppConfig.class);
oxMapper.alias("database", Database.class);
oxMapper.alias("buzz", Buzz.class);
要像这样读取和反序列化 XML:
ApplicationConfig appCfg = (ApplicationConfig)oxMapper.fromXML(
getXMLSnippet());
但是我收到了这个错误:
Element database of type com.myapp.Database is not defined as field in type com.myapp.AppConfig
我读了这篇关于隐式集合的文章,并相信XStream 认为我的两个Database
项目是列表的一部分(隐式集合),而实际上它们不是(它们应该映射到 2 个不同的AppConfig
属性)。
我该如何解决?提前致谢!