[英]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.