2014-09-23 41 views
2

當我的元素序列化爲XML時(例如「fooXml」)和不同的JSON(例如「fooJson」),我希望元素的名稱不同。可能嗎?Jackson JSON XML - 序列化爲XML時的不同名稱

我使用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。

+0

它是序列化到XML,而不是所有的json或只是json和使用XML名稱? – Feroc 2014-09-23 11:33:54

+0

@Feroc JSON使用XML名稱。 – 2014-09-23 11:53:00

回答

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」字段和「MyXmlName '在XML中。

相關問題