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

使用Jackson反序列化XML时,无法解析带属性节点的文本值问题求助

解决方案

问题的核心是XML中<Iphone>标签的属性和内部文本内容需要通过特定注解告诉Jackson如何映射到POJO字段:

  1. 对于XML标签的属性(如os="ios"),需要用@JacksonXmlProperty(isAttribute = true)标记对应的POJO字段;
  2. 对于XML标签的内部文本(如13),需要用@JacksonXmlText标记对应的POJO字段。

修改后的POJO代码如下:

@lombok.Data 
public class PhoneDetails { 
    @JacksonXmlProperty(localName = "Iphone") 
    private Iphone iphoneDetails; 
}

@lombok.Data 
public class Iphone { 
    @JacksonXmlProperty(isAttribute = true)
    private String os; 
    @JacksonXmlText
    private String iphone; 
}

注解说明

  • @JacksonXmlProperty(isAttribute = true):明确指定os字段对应<Iphone>标签的os属性,确保Jackson将属性值ios正确赋值给该字段;
  • @JacksonXmlText:指定iphone字段对应<Iphone>标签内部的文本内容,这样13会被反序列化到该字段中。

主方法无需修改,保持原有配置即可。运行后,PhoneDetails对象中的iphoneDetails会正确包含os="ios"和iphone="13"的内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 22:35:31