Поддержка MOXy JSON

Я использую MOXy EclipseLink в качестве реализации JAXB в моем проекте RESTEasy. Расширенная функциональность MOXy, которая была представлена ​​такими аннотациями, как @XmlDiscriminatorNode & Value, мне очень помогла. Все работает нормально, кроме одного: поддержка JSON. Я использую JettisonMappedContext из RESTEasy, но, к сожалению, после сортировки в моем JSON есть только переменные поля экземпляра, принадлежащие абстрактному суперклассу.

@XmlRootElement
@XmlDiscriminatorNode("@type")
public abstract class Entity {

    public Entity(){}

    public Entity(String id){
        this.id = id;
    }

    private String id;

    @XmlElement
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
}

Подкласс:

@XmlRootElement
@XmlDiscriminatorValue("photo")
public class Photo extends Entity{

    private String thumbnail;

    public Photo(){}

    public Photo(String id) {
        super(id);
    }

    public void setThumbnail(String thumbnail) {
        this.thumbnail = thumbnail;
    }

    @XmlElement(name="thumbnail")
    public String getThumbnail() {
        return thumbnail;
    }
}

XML после маршалинга:

<object type="photo">
   <id>photoId423423</id>
   <thumbnail>http://dsadasadas.dsadas</thumbnail>
</object>

JSON после сортировки:

"object":{"id":"photoId423423"}

Есть ли другой способ добиться этого?

Спасибо.


person barand    schedule 01.04.2011    source источник


Ответы (1)


person    schedule
comment
Большое спасибо за подробный ответ. Вы снова меня спасли :) - person barand; 06.04.2011