我有一个非常简单的 XML 文件,但我似乎无法将其反序列化回 POJO。
该文件如下所示:
<?xml version="1.0"?>
<Settings>
<property name="a" value="1"/>
<property name="b" value="2"/>
<property name="c" value="3"/>
[...]
</Settings>
用一个非常简单的方法
public void convertXml() {
try {
final XmlMapper xmlMapper = new XmlMapper();
final Configuration configuration = xmlMapper.readValue(rawXml.getFile(), Configuration.class);
log.info("Configuration parsed {}", configuration);
} catch (final IOException e) {
e.printStackTrace();
}
}
还有一些我本以为会进入的类(class)
public class Configuration {
private Settings settings;
}
public class Settings {
private List<Property> property;
}
public class Property {
private String name;
private String value;
}
但是,Configuration 对象的 Settings 属性只有一个空值。
我错过了这里显而易见的事情吗?
最佳答案
一些注释最终得到了答案
@JacksonXmlRootElement(localName = "Settings")
public class Configuration {
@JacksonXmlElementWrapper(useWrapping = false)
private List<Property> property;
}
这让我可以放弃中间的设置类。
关于java - 如何使用 XMLMapper 反序列化具有键值对的 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58791269/