Json 数据不是来自 RESTEasy 服务
Json data is not wrapped from RESTEasy services
我实现了测试 RESTEasy 服务。这些是简单的代码。
Member.java
@XmlAccessorType(XmlAccessType.NONE)
@XmlRootElement(name = "member")
public class Member implements Serializable{
@XmlElement(name = "id")
private String id;
@XmlElement(name = "passwd")
private String passwd;
@XmlElement(name = "age")
private int age;
@XmlElement(name = "name")
private String name;
public String getId() {
return id;
}....
REST 服务java
@Path("/services")
public class RESTEasyServices {
@GET
@Path("getJson/{id}")
@Produces(MediaType.APPLICATION_JSON) // This config can't be understood
public Response sayJsonHello(@PathParam("id") String id){
Member m = new Member();
m.setId(id);
m.setPasswd("aaa");
m.setAge(45);
m.setName("joseph");
//return m;
return Response.status(200).entity(m).build();
}
}
调用 URI 成功。但是 Json 数据没有换行:
{"id":"aupres","passwd":"aaa","age":45,"name":"joseph"}
然而,当我将 @Produce 的属性设置为 MediaType.APPLICATION_XML 时,
@Produces(MediaType.APPLICATION_XML)
XML 数据的响应已包装。
<member>
<id>aupres</id>
<passwd>aaa</passwd>
<age>45</age>
<name>joseph</name>
</member>
我不知道如何包装 json 数据。
已解决。这些是我的代码
@GET
@Path("getJson/{id}")
@Produces(MediaType.APPLICATION_JSON)
public Map<String, List<Member>> sayJsonHello(@PathParam("id") String id){
Member m1 = new Member();
m1.setId(id);
m1.setPasswd("aaa");
m1.setAge(45);
m1.setName("joseph");
Member m2 = new Member();
m2.setId("hwa5383");
m2.setPasswd("bbb");
m2.setAge(40);
m2.setName("jina");
List<Member> list = new ArrayList();
list.add(m1);
list.add(m2);
Map<String, List<Member>> mems = new HashMap();
mems.put("member", list);
return mems;
}
那么输出就是Json类型
{"member":[{"id":"aupres","passwd":"aaa","age":45,"name":"joseph"},{"id":"hwa5383","passwd":"bbb","age":40,"name":"jina"}]}
谢谢。
我实现了测试 RESTEasy 服务。这些是简单的代码。
Member.java
@XmlAccessorType(XmlAccessType.NONE)
@XmlRootElement(name = "member")
public class Member implements Serializable{
@XmlElement(name = "id")
private String id;
@XmlElement(name = "passwd")
private String passwd;
@XmlElement(name = "age")
private int age;
@XmlElement(name = "name")
private String name;
public String getId() {
return id;
}....
REST 服务java
@Path("/services")
public class RESTEasyServices {
@GET
@Path("getJson/{id}")
@Produces(MediaType.APPLICATION_JSON) // This config can't be understood
public Response sayJsonHello(@PathParam("id") String id){
Member m = new Member();
m.setId(id);
m.setPasswd("aaa");
m.setAge(45);
m.setName("joseph");
//return m;
return Response.status(200).entity(m).build();
}
}
调用 URI 成功。但是 Json 数据没有换行:
{"id":"aupres","passwd":"aaa","age":45,"name":"joseph"}
然而,当我将 @Produce 的属性设置为 MediaType.APPLICATION_XML 时,
@Produces(MediaType.APPLICATION_XML)
XML 数据的响应已包装。
<member>
<id>aupres</id>
<passwd>aaa</passwd>
<age>45</age>
<name>joseph</name>
</member>
我不知道如何包装 json 数据。
已解决。这些是我的代码
@GET
@Path("getJson/{id}")
@Produces(MediaType.APPLICATION_JSON)
public Map<String, List<Member>> sayJsonHello(@PathParam("id") String id){
Member m1 = new Member();
m1.setId(id);
m1.setPasswd("aaa");
m1.setAge(45);
m1.setName("joseph");
Member m2 = new Member();
m2.setId("hwa5383");
m2.setPasswd("bbb");
m2.setAge(40);
m2.setName("jina");
List<Member> list = new ArrayList();
list.add(m1);
list.add(m2);
Map<String, List<Member>> mems = new HashMap();
mems.put("member", list);
return mems;
}
那么输出就是Json类型
{"member":[{"id":"aupres","passwd":"aaa","age":45,"name":"joseph"},{"id":"hwa5383","passwd":"bbb","age":40,"name":"jina"}]}
谢谢。