Я искал способ легко изменить имя элемента списка объектов с помощью JAXB при публикации их через веб-службу. Вот пример:JAXB: простой способ аннотировать имя тегов элементов для списков объектов
Скажем, у меня есть объект, я хочу, чтобы сериализовать в XML:
@XmlRootElement(name = "greeting")
public class TestClassForSo {
public String id;
public List<String> description;
}
И у меня есть веб-сервис, публикующий список этих объектов как XML:
@GET
@Path("/so-test")
@Produces({AgiMediaType.APPLICATION_XML, AgiMediaType.APPLICATION_JSON})
@XmlElementWrapper(name = "wrapperName")
public List<TestClassForSo> getGreetings() {
List<TestClassForSo> greetingList = new ArrayList<>();
TestClassForSo greeting = new TestClassForSo();
String id = "hello-word";
List<String> greetings = new ArrayList<>(Arrays.asList("Hello World,
Bonjour le monde,
Hallo Welt,
Hola Mundo"));
greeting.id = id;
greeting.description = greetings;
greetingList.add(greeting);
return greetingList;
}
я получаю следующий результат, когда я запросить ресурс через HTTP GET вызов:
<testClassForSoes>
<greeting>
<id>hello-word</id>
<description>Hello World, Bonjour le monde, Hallo Welt, Hola Mundo</description>
</greeting>
</testClassForSoes>
есть ли е asy способ изменить имя элемента списка на greetings
, кроме того, что он помещает его в метод оболочки или записывает собственный механизм сериализации и т. д.?
Очевидно, что я не могу изменить имя TestClassForSo
из-за соглашений об именах.
В качестве побочного вопроса эта проблема действительно имела бы значение, чтобы сделать ее более читаемой для людей, что такое имя элемента списка?
Благодарим вас за вопрос. Любая помощь приветствуется. Я просматривал похожие вопросы в Интернете, но ничто, похоже, не соответствует моей проблеме.
Привет
Здравствуйте, спасибо за ответ. Именно это я и сделал. Ссылка, которую вы поделили, была полезной для будущих начинающих JAXB. – Scyla101