使用JAX-RS的JSON响应

使用JAX-RS的JSON响应,json,jaxb,jax-rs,Json,Jaxb,Jax Rs,我有一个简单的POJO,可以转换为JSON对象 @XmlRootElement public class Data { public Data(){} private int roll; private String name; public int getRoll() { return roll; } public void setRoll(int roll) { this.roll = roll; }

我有一个简单的POJO,可以转换为JSON对象

@XmlRootElement
public class Data {
    public Data(){}
    private int roll;
    private String name;
    public int getRoll() {
        return roll;
    }
    public void setRoll(int roll) {
        this.roll = roll;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}
这将转换为一个简单的JSON对象,如下所示

{
name: "Adrian",
roll: 77
}
这部分很好。现在,我系统中的所有json RETUN都将在名为object lile的数据中包含该对象

{
app_name:abc,
app_version:1
data:
{
   user :
   {
     name: "Adrian",
     roll: 77
   }

}
无论我向客户端发送哪种类型的对象,我都希望它们是这种类型。有人能告诉我怎么做吗


亲切问候。

如果您想将
数据
实例包装到某种包装器中,请编写一个带有适当JAXB注释的类:

@XmlRootElement
public class DataWrapper {

    private Data data;
    private String app_name;
    private int app_version;

    // Constructors, Getter, Setter
}
然后,您的JAX-RS方法将创建这样一个
DataWrapper
,并返回它:

@GET
public Response getDataWrapper() {
    DataWrapper dw = new DataWrapper(app_name, app_version, new Data(...));
    return Response.ok(dw).build();
}

如果要将
数据
实例包装到某种包装器中,请使用适当的JAXB注释编写一个类:

@XmlRootElement
public class DataWrapper {

    private Data data;
    private String app_name;
    private int app_version;

    // Constructors, Getter, Setter
}
然后,您的JAX-RS方法将创建这样一个
DataWrapper
,并返回它:

@GET
public Response getDataWrapper() {
    DataWrapper dw = new DataWrapper(app_name, app_version, new Data(...));
    return Response.ok(dw).build();
}