【发布时间】:2026-01-29 02:15:01
【问题描述】:
我有一个类的实例,如下所示
public class SomeEntity{
private OpMetric metric = Options.MEASURED;
private Scope scope = Scopes.GLOBAL;
}
需要序列化成下面的XML
<SomeEntity xmlns="">
<op-metric>
<value>0.3</value>
</op-metric>
<calculated-scope>
<value>updated-global</value>
</calculated-scope>
</SomeEntity >
在这两种情况下,要在 xml 中设置的值都是根据原始字段的枚举值计算,这意味着我需要使用 getter(+ @JsonIgnore 在字段上)而不仅仅是注释田野。 我尝试在 getter 上使用以下注释来生成格式
@JacksonXmlProperty(isAttribute = false, localName = "value")
@JacksonXmlElementWrapper(localName="op-metric")
但由于使用相同的本地名称时发生冲突,它只能用于其中一个:
com.fasterxml.jackson.databind.JsonMappingException: Conflicting getter definitions for property "value":
使用 Mixins 并没有让我有太大进步,因为显然同样的限制也适用于此。
我应该如何创建这个 XML 结构?
【问题讨论】:
标签: java xml serialization jackson