【发布时间】:2022-01-22 10:56:53
【问题描述】:
我有一些奇怪的 xml 我正在尝试反序列化为 java 对象
<Operator>
<Parameter Key="a" Value="1"/>
<Parameter Key="b" Value="2"/>
<Parameter Key="c" Value="3"/>
<StorageParameters Key="x" Value="***"/>
<Parameter Key="d" Value="4"/>
</Operator>
我只需要收集参数节点作为列表。 我编写了我的java类如下
@JsonIgnoreProperties(ignoreUnknown = true)
public class Operator {
@JacksonXmlProperty(localName="Parameter")
@JacksonXmlElementWrapper(useWrapping = false)
private List<Parameter> parameters;
public Operator() {
this.parameters = List.of();
}
public List<Parameter> getParameters() {
return parameters;
}
public void setParameters(List<Parameter> parameters) {
this.parameters = parameters;
}
}
public class Parameter {
private String Key;
private String Value;
public Parameter() {
Key = "";
Value = " ";
}
public String getKey() {
return Key;
}
public void setKey(String key) {
Key = key;
}
public String getValue() { return Value; }
public void setValue(String value) {
Value = value;
}
}
// Driver
JacksonXmlModule module = new JacksonXmlModule();
XmlMapper mapper = new XmlMapper(module);
Operator bean = mapper.readValue(xmlText, classOf[Operator])
当我运行它时,参数列表返回的唯一值是 Key="d" 和 Value="4" 的最后一个参数条目。
这是预期的行为吗?是否有任何注释可以用来获取所有参数键/值对?
谢谢!
【问题讨论】:
标签: java arrays jackson deserialization fasterxml