如何使用 XMLMapper 使用键值对反序列化 XML
How to deserialize XML with key value pairs with XMLMapper
我有一个非常简单的 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();
}
}
还有几个 类 我原以为它会进入
public class Configuration {
private Settings settings;
}
public class Settings {
private List<Property> property;
}
public class Property {
private String name;
private String value;
}
然而,配置对象的设置只有一个空值 属性。
我错过了这里的明显内容吗?
几个注释就是最后的答案
@JacksonXmlRootElement(localName = "Settings")
public class Configuration {
@JacksonXmlElementWrapper(useWrapping = false)
private List<Property> property;
}
这让我可以放弃中间设置 class。
我有一个非常简单的 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();
}
}
还有几个 类 我原以为它会进入
public class Configuration {
private Settings settings;
}
public class Settings {
private List<Property> property;
}
public class Property {
private String name;
private String value;
}
然而,配置对象的设置只有一个空值 属性。
我错过了这里的明显内容吗?
几个注释就是最后的答案
@JacksonXmlRootElement(localName = "Settings")
public class Configuration {
@JacksonXmlElementWrapper(useWrapping = false)
private List<Property> property;
}
这让我可以放弃中间设置 class。