列表的名称存在于属于它的元素中。
public class root {
@JacksonXmlProperty(isAttribute = true, localName = “Name”)
private String name;
@JsonProperty(“ItemList”)
private list<Item> itemList = new ArrayList<>();
}
public class item {
@JacksonXmlProperty(isAttribute = true, localName = “ItemName”)
private String itemName;
@JacksonXmlText
private String value;
}
我得到:
<root Name=“”>
<ItemList>
<ItemList ItemName=“”></ItemList>
</ItemList>
</root>
我想:
<root Name=“”>
<ItemList>
<Item ItemName=“”></Item>
</ItemList>
</root>
感谢您的任何帮助
回答1
您必须使用注释:https://www.javadoc.io/doc/com.fasterxml.jackson.dataformat/jackson-dataformat-xml/2.0.2/com/fasterxml/jackson/dataformat/xml/annotation/JacksonXmlElementWrapper.html 和 https://www.javadoc.io/doc/com.fasterxml.jackson.dataformat/jackson-dataformat-xml/2.0.2/com/fasterxml/jackson/dataformat/xml/annotation/JacksonXmlProperty.html
例子:
public class root {
@JacksonXmlProperty(isAttribute = true, localName = "Name")
public String name;
@JacksonXmlElementWrapper(localName = "ItemList")
@JacksonXmlProperty(localName = "Item")
public List<Item> itemList = new ArrayList<>();
}
XML 生成:
<root Name="123">
<ItemList>
<Item ItemName="ItemName">value</Item>
</ItemList>
</root>