0

こんにちは、単純な「こんにちは」メッセージを以下に xml 形式で書きましたが、うまくいきます。質問は、以下の xml の「hello」メッセージを Json 形式に変換する方法です。どのような変更を入力すればよいですか?

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;

@Path("/hello")
public class Hello {
    //Called if XML is request
        @GET
        @Produces(MediaType.TEXT_XML)
        public String sayXMLHello() {
            return "<?xml version=\"1.0\"?>" + "<hello> Hello, World!" + "</hello>";
        }
    //Called if JSON is request
4

2 に答える 2

3

ドメイン オブジェクトを準備します。

@XmlRootElement
public class Hello {

    @XmlValue
    private String value = "Hello, World!";
}

JAX-RSやりたいことができるようになりました。

@Path("/hello")
public class HelloResource {

    @GET
    @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
    public Hello read() {
        return new Hello();
    }

    @GET
    @Path("/world.xml")
    @Produces({MediaType.APPLICATION_XML})
    public Hello readXml() {
        return new Hello();
    }

    @GET
    @Path("/world.json")
    @Produces({MediaType.APPLICATION_JSON})
    public Hello readJson() {
        return new Hello();
    }
}

これで、どのクライアントも次の HTTP ヘッダーで取得したい形式を選択できるようになりました。

Accept: application/xml

また

Accept: application/json

言う、

$ curl http://.../hello
$ curl -H "Accept: application/xml" http://.../hello
$ curl -H "Accept: application/json" http://.../hello
$ curl http://.../hello/world.xml
$ curl http://.../hwllo/world.json

参考文献

于 2013-07-26T02:13:03.107 に答える
0

メディア タイプは、出力の種類を定義します。

メディアタイプを @Produces(MediaType.TEXT_XML) から変更します

@Produces(MediaType.APPLICATION_JSON)へ

于 2013-07-19T10:58:21.257 に答える