java - Jackson XML:如何从列表名称中获得不同的元素名称?

列表的名称存在于属于它的元素中。

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.htmlhttps://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>

相似文章

spring-batch - 无法并行运行 Spring 批处理步骤

我正在尝试并行运行多个步骤,但是当不同的流程尝试更新JOB_EXECUTION统计信息时,后端SQLServer数据库中出现错误(冲突)。我正在使用异步任务执行器,但除此之外,我不确定如何让这些流程成...

最新文章