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

如何为Kotlin数据类的字段添加XML属性(Jackson库)

解决Jackson-Kotlin生成带属性XML节点的问题

你当前的问题是因为把actionCode属性直接绑定在了根类ExampleClass的字段上,Jackson会默认将其作为根节点<ExampleClass>的属性。要让属性属于<field>节点,必须把<field>节点的属性和文本内容封装成独立的数据类,具体修改如下:

1. 创建表示<field>节点的数据类

新建一个类来承载<field>节点的属性和文本值,用@JacksonXmlText标记文本内容:

data class FieldItem(
    @JacksonXmlProperty(isAttribute = true, localName = "actionCode")
    val actionCode: String = "Add",
    
    @JacksonXmlText
    val value: String = "aa"
)

2. 修改ExampleClass引用新的节点类

将原来的String类型field字段替换为FieldItem类型:

data class ExampleClass(
    @JacksonXmlProperty(localName = "field")
    val field: FieldItem = FieldItem()
)

生成的XML结果

用XmlMapper序列化后,会得到预期的结构:

<ExampleClass>
   <field actionCode="Add">aa</field>
</ExampleClass>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 00:57:23