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"}]}

谢谢。