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

时间:2014-09-23 11:27:42

标签: java json jersey jackson jax-rs

我希望我的元素在序列化为XML时具有不同的名称(例如" fooXml"),并且JSON不同(例如& #34; fooJson&#34)。有可能吗?

我使用的是XML注释,如:

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

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

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

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

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

我该怎么做?

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

1 个答案:

答案 0 :(得分:0)

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

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

@JsonProperty("MyJsonName")
@JacksonXmlProperty(localName = "MyXmlName")
private MyProperty myProperty;

适用于我,myProperty将位于Json的'MyJsonName'字段和XML中的'MyXmlName'。