JAXB поддерживает встроенные элементы? - PullRequest
2 голосов
/ 08 сентября 2011

Я заметил, что у Джексона есть ожидающая функция для встроенных / развернутых элементов, см. Здесь: http://wiki.fasterxml.com/JacksonRelease19.

Идея состоит в том, что у вас может быть два класса:

class A {
    String y;
    String z;
}
class B {
    String x;
    A a;
}

И вы хотите создать JSON, например:

{
    "x":"...",
    "y":"...",
    "z":"..."
}

Вопрос в том, поддерживает ли JAXB какую-то похожую функцию (или ожидается, что это произойдет в будущем)?Я считаю, что обычное наследование может сделать это, но, поскольку java не поддерживает множественное наследование, это не всегда выполнимо (не говоря уже о том, что отношения могут быть скорее скорее «есть, чем есть»).

1 Ответ

2 голосов
/ 08 сентября 2011

Примечание: Я EclipseLink JAXB (MOXy) и член JAXB 2 ( JSR-222 ) экспертная группа.

MOXy в настоящее время поддерживает эту концепцию в привязке XML и будет поддерживать ее в привязке JSON через расширение @XmlPath (см. Ниже):

package forum7352753;

import org.eclipse.persistence.oxm.annotations.XmlPath;

class B {
    String x;
    A a;

    public String getX() {
        return x;
    }

    public void setX(String x) {
        this.x = x;
    }

    @XmlPath(".")
    public A getA() {
        return a;
    }

    public void setA(A a) {
        this.a = a;
    }

}

Запрос на улучшение

Для получения дополнительной информации

...