既存の XML ベースの Web サービスを JSON タイプの Web サービスに変換するにはどうすればよいですか?
このサンプル リソースがあります。
@Controller
public class CustomerController {
@RequestMapping(value="customers", method=RequestMethod.GET)
public @ResponseBody CustomerList customers(Model model) {
CustomerList list = new CustomerList();
list.getCustomer().add(new Customer("1", "John Doe"));
list.getCustomer().add(new Customer("2", "Jane Doe"));
return list;
}
}
これまでのところ、アクセスに関するエラーは発生していません。このサービスがクライアントに返すデータを XML から JSON に変更したいだけです。
このエンティティで:
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
"customer"
})
@XmlRootElement(name = "CustomerList")
public class CustomerList {
@XmlElement(name = "Customer", required = true)
protected List<Customer> customer;
public List<Customer> getCustomer() {
if (customer == null) {
customer = new ArrayList<Customer>();
}
return this.customer;
}
}
サーブレット-context.xml:
<oxm:jaxb2-marshaller id="marshaller" contextPath="com.mycompany.api.model"/>
<beans:bean id="customerList" class="org.springframework.web.servlet.view.xml.MarshallingView">
<beans:constructor-arg ref="marshaller"/>
</beans:bean>
サービスの出力を JSON に変更するにはどうすればよいですか? エンティティ/モデルに JSON 型の注釈を入れる必要がありますか?