2013-07-18 25 views
0

嗨我已經寫了下面的XML格式的簡單的「你好」的消息,它的工作原理,我的問題是如何變換下面的JSON格式的XML「你好」消息,什麼排序我應該進入哪些變化?Restful WebService使用澤西變換XML到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 
+1

很多選項,全部記錄在這裏:https://jersey.java.net/documentation/latest/media.html – samlewis

回答

0

媒體類型定義輸出種類。從 @Produces(MediaType.TEXT_XML)

要 @Produces(MediaType.APPLICATION_JSON)

2

變化的MediaType準備一個域對象。

@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 

參考