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

如何使用Jackson反序列化含属性与值的XML元素

解决Jackson XML反序列化中标签文本内容为null的问题

问题原因

你当前的代码错误地将bitstrm字段映射为<bitstream>的子元素,但实际上你需要的是该标签本身的文本内容,所以导致字段始终为null。无需自定义反序列化器,使用Jackson提供的@JacksonXmlText注解即可解决。

修改后的代码

@JsonIgnoreProperties(ignoreUnknown = true)
public class Bitstream {
    @JacksonXmlProperty(isAttribute = true)
    private String encoding;
    
    @JacksonXmlText // 用该注解获取XML标签的文本内容
    private String bitstrm;

    public String getEncoding() {
        return encoding;
    }
    
    public void setEncoding(String encoding) {
        this.encoding = encoding;
    }
    
    public String getBitstream() {
        return bitstrm;
    }
    
    public void setBitstream(String bitstrm) { // 修正setter方法名,与getter保持JavaBean规范一致
        this.bitstrm = bitstrm;
    }
}

关键说明

  • @JacksonXmlText注解专门用于绑定XML元素的文本内容,正好匹配你<bitstream>标签同时包含属性和文本值的结构。
  • 修正setter方法名是为了符合JavaBean规范,确保Jackson能够正确识别并注入值(如果字段命名和getter/setter对应不上,Jackson可能无法找到对应的赋值方法)。

内容的提问来源于stack exchange,提问作者John Ormerod

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 15:18:14