Я запускаю образец (который больше не могу найти) от Blaise Doughans blog на Glassfish 3 с использованием EclipseLink 2.5 MOXy для службы JAXB.Unmarshal список одиночных элементов не работает
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class Company {
@XmlElementWrapper(name="employees")
@XmlElement(name = "employee", type=Employee.class)
private List<Employee> employees;
}
@XmlAccessorType(XmlAccessType.FIELD)
public class Employee {
private String id;
private String name;
}
Я добавил некоторые аннотации к классам, для получения желаемой структуры JSon:
{
"employees": [
{
"id": "1",
"name": "Jane Doe",
"report": []
}
]
}
Когда я пытаюсь распаковать этот JSON он, к сожалению, не удается, возвращая объект с пустым списком сотрудников.
Добавление другого элемента в список JSON ИЛИ удаление работ @XmlElementWrapper
.
Но я хочу, чтобы ключевой элемент назывался employees
, поэтому мне нужно использовать аннотацию обертки или нет?
Edit:
public class MyApplication extends Application {
@Override
public Set<Class<?>> getClasses() {
HashSet<Class<?>> set = new HashSet<Class<?>>(2);
set.add(MOXyJsonProvider.class);
set.add(Index.class);
return set;
}
@Override
public Set<Object> getSingletons() {
MOXyJsonProvider moxyJsonProvider = new MOXyJsonProvider();
moxyJsonProvider.setAttributePrefix("@");
moxyJsonProvider.setFormattedOutput(true);
moxyJsonProvider.setIncludeRoot(false);
moxyJsonProvider.setMarshalEmptyCollections(true);
moxyJsonProvider.setValueWrapper("$");
moxyJsonProvider.setWrapperAsArrayName(true);
HashSet<Object> set = new HashSet<Object>(1);
set.add(moxyJsonProvider);
return set;
}
}
Спасибо. Так что я мог бы захватить сегодняшнюю ночную сборку, чтобы получить фиксированную версию? – Imperative
@Imperative - Я поставлю исправление сегодня и завтра вы сможете захватить ночную сборку 19 июня. Обычно он доступен в утреннее восточное время. –