Jackson JSON XML - 序列化为 XML 时的不同名称

Gre*_*zak 4 java json jax-rs jersey jackson

我希望元素在序列化为 XML 时具有不同的名称(例如“ fooXml”),而对于 JSON 则具有不同的名称(例如“ fooJson”)。是否可以?

我正在使用 XML 注释,例如:

@XmlElements({
    @XmlElement(type = Foo.class, name = "fooXml"),
    })
    private SortedSet<Foo> fooSet;
Run Code Online (Sandbox Code Playgroud)

我已经尝试过@JsonProperty,但没有任何运气。

我还尝试将其导出到 getter 方法,例如:

@XmlElement(type = Foo.class, name = "fooXml")
@JsonProperty(value = "fooJson")
public List<Foo> getFooList() {
    return new ArrayList<>(fooSet);
}
Run Code Online (Sandbox Code Playgroud)

但它总是忽略 JSON 注释并序列化为 XML 形式(fooXml名称)。

我该怎么做呢?

编辑:我正在使用 Jersey-json。

Bwv*_*all 5

好吧,我需要同样的功能,并找到了一个适用于此的解决方案:

import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;

@JsonProperty("MyJsonName")
@JacksonXmlProperty(localName = "MyXmlName")
private MyProperty myProperty;
Run Code Online (Sandbox Code Playgroud)

对我有用,myProperty 将位于 Json 中的“MyJsonName”字段和 XML 中的“MyXmlName”字段中。