You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Jackson序列化XML时,如何单独重命名列表子标签?求助

解决Jackson XML序列化列表子标签名称问题

要实现父标签为<albums>、子标签为<album>的XML结构,只需结合Jackson XML的两个注解分别控制列表的包裹标签和子元素标签:

修改Artist类

在getAlbums()方法上添加以下注解:

  • @JacksonXmlElementWrapper(localName = "albums"):指定列表的外层包裹标签为<albums>
  • @JacksonXmlProperty(localName = "album"):指定列表中每个Album元素的标签为<album>

修改后的Artist类代码:

public class Artist {
    private String name;
    private List<Album> albums = new ArrayList<>();
    
    public String getName() {
        return name;
    }

    @JacksonXmlElementWrapper(localName = "albums")
    @JacksonXmlProperty(localName = "album")
    public List<Album> getAlbums() {
        return albums;
    }
}

注解作用说明

  • @JacksonXmlElementWrapper显式指定外层包裹标签名,确保父标签保持为<albums>
  • @JacksonXmlProperty覆盖默认的子元素标签名,将原本的<albums>替换为<album>

修改完成后,序列化生成的XML即可符合预期格式:

<Artist>
  <name>Some name</name>
  <albums>
    <album name="Some name1" year="1985"/>
    <album name="Some name2" year="1986"/>
  </albums>
</Artist>

内容的提问来源于stack exchange,提问作者Nikita Zakharov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 14:16:45