Если мы вернем объект коллекции в ответе REST, то JSON (у него будет узел корневого элемента в качестве имени объекта коллекции — в данном случае сотрудники) будет в следующем формате:
{
"employees": [{
"id": "1",
"name": "employee name1",
"company": "ABC Company"
}, {
"id": "2",
"name": "employee name2",
"company": "XYZ Company"
}]
}
Вот фрагмент нашей конфигурации JsonProvider в контексте приложения.
<bean id="jsonProvider" class="org.apache.cxf.jaxrs.provider.json.JSONProvider">
<property name="dropRootElement" value="true" />
<property name="serializeAsArray" value="true" />
<property name="dropCollectionWrapperElement" value="true" />
</bean>
@XmlRootElement(name="emps")
public class EmpList{
private List<Emp> employees;
//setter and getter methods
}
@XmlRootElement(name="emp")
public class Emp{
private int id;
private Sting name;
private String company;
//setter and getter methods
}
Мне не нужен узел корневого элемента объекта Collection в ответе JSON. Вывод должен быть в следующем формате. Я использую платформу Apache CXF для остальных служб.
{
[{
"id": "1",
"name": "employee name1",
"company": "ABC Company"
}, {
"id": "2",
"name": "employee name2",
"company": "XYZ Company"
}]
}
Мы используем cxf JsonProvider по умолчанию (Jettison)
Пожалуйста, предложите любое решение. Заранее спасибо.