3
我使用EclipseLink 2.5 MOXy for JAXB服務在Glassfish 3上運行Blaise Doughans blog的示例(我找不到它了)。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
,所以我必須使用包裝註釋,或不?
編輯:
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-我會在今天和明天解決你將能夠抓住6月19日夜間建設。它通常在早上東部時間可用。 –