Я пытаюсь аннотировать набор объектов данных аннотациями привязки JAXB, чтобы этот набор объектов данных можно было правильно маршалировать как JSON с использованием CXF.Я сталкиваюсь с проблемой с классом, который по сути является просто оболочкой для ArrayList:
class IntegerListWrapper {
private ArrayList<Integer> integerList;
...
}
Некоторые из моих объектов данных относятся к этому классу:
class DataObjectFoo {
...
public IntegerListWrapper getDataIDs() {
...
}
...
}
Яищу вывод:
"DataObjectFoo" : {
"dataIDs" : [1, 2, ..., n] // Array of Data IDs
}
Я попытался аннотировать сам класс IDList, но он оставил меня с этим:
"DataObjectFoo" : {
"dataIDs" : { "integerList" : [1, 2, ..., n] } // Extra nesting
}
Я попытался написать XmlAdapter, но получил смешанные результаты:
// Throws an error... "Can't bind to interface"
public final class IDListAdapter extends XmlAdapter<List<Integer>, IDList> {
// Does not produce any output
public final class IDListAdapter extends XmlAdapter<ArrayList<Integer>, IDList> {
// Produces output with extra nesting like above
public final class IDListAdapter extends XmlAdapter<Integer[]>, IDList>
Итак, у меня есть два вопроса:
- Как получить желаемый результат (без преобразования IDList во что-то еще в моих объектах данных)?
- Почемувторой XmlAdapter (использующий ArrayList) не выдает вывод?