簡體   English   中英

Restful WebService使用Jersey將xml轉換為json格式

[英]Restful WebService using Jersey transform xml to json format

嗨我已經用xml格式編寫了簡單的“hello”消息並且它可以工作,我的問題是如何以Json格式轉換下面的xml“hello”消息,我應該輸入什么樣的更改?

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

准備域對象。

@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

參考

媒體類型定義輸出種類。

從@Produces更改mediatype(MediaType.TEXT_XML)

致@Produces(MediaType.APPLICATION_JSON)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM