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

如何使用Jackson XML获取嵌套元素的属性值?

解决Jackson XML反序列化嵌套元素属性的问题

你的问题出在没有正确映射XML的嵌套结构,Jackson XML本身支持嵌套元素的属性反序列化,并非库的限制。

你当前的POJO直接在Element1类里声明attribute字段,Jackson会把Element2的文本内容("Some element value")映射到这个字段,因为它找不到对应Element2的结构。正确的做法是为Element2单独创建POJO,再在Element1中引用它:

首先定义Element2类:

public class Element2 implements Serializable {
    @JacksonXmlProperty(isAttribute = true)
    private String attribute;
    
    @JacksonXmlText
    private String value;

    // 生成getter、setter方法
}

然后修改Element1类,包含Element2的实例:

@JacksonXmlRootElement(localName = "Element1")
public class Element1 implements Serializable {
    @JacksonXmlProperty(localName = "Element2")
    private Element2 element2;

    // 生成getter、setter方法
}

这样反序列化后,你就能通过element1.getElement2().getAttribute()拿到"Some String",通过element1.getElement2().getValue()拿到"Some element value"。

另外注意你提供的XML最后一个Element1标签未闭合,应改为</Element1>,否则反序列化会报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 17:05:32