0

既存の 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 型の注釈を入れる必要がありますか?

4

1 に答える 1

0

Jackson JSON processorを使用すると、コードは非常に似ています。モデルは単純な POJO 形式になります。応答に @ResponseBody を再度使用すると、Jackson が JSON 変換を処理します。

このSpring 3 MVC および JSON の例を参照してください。

于 2012-08-01T11:08:38.007 に答える