您好我已经用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
答案 0 :(得分:2)
准备域对象。
@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
<强>参考强>
答案 1 :(得分:0)
媒体类型定义输出种类。
更改mediatype @Produces(MediaType.TEXT_XML)
要 @Produces(MediaType.APPLICATION_JSON)