2014-09-23 2 views
2

Я хотел бы иметь другое имя для моего элемента, когда он сериализуется в XML (например, «fooXml») и отличается для JSON (например, «fooJson»). Является ли это возможным?Jackson JSON XML - разные имена при сериализации в XML

Я использую XML аннотации, как:

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

Я уже пробовал @JsonProperty с без каких-либо удачи.

Я также пытался экспортировать его добытчика метод, как:

@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

+0

@Feroc JSON использует XML-имя. –

ответ

0

Хорошо, у меня была потребность в этой же функциональности и нашел решение, которое работает для этого:

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

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

работает для меня, и MyProperty будет находиться в поле «MyJsonName» в Json и «MyXmlName 'в XML.

Смежные вопросы