REST 応答でコレクション オブジェクトを返す場合、JSON (コレクション オブジェクト名としてルート要素ノードが含まれます。この場合は employees) は次の形式になります。
{
"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
}
JSON 応答で Collection オブジェクトのルート要素ノードを使用したくありません。出力は次の形式である必要があります。残りのサービスに Apache CXF フレームワークを使用しています。
{
[{
"id": "1",
"name": "employee name1",
"company": "ABC Company"
}, {
"id": "2",
"name": "employee name2",
"company": "XYZ Company"
}]
}
デフォルトの cxf JsonProvider (Jettison) を使用しています。
解決策を提案してください。前もって感謝します。