使用JAX-RS进行JSON响应

时间:2012-10-28 14:04:57

标签: 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;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}

这将转换为一个简单的JSON对象

{
name: "Adrian",
roll: 77
}

这部分没问题。现在我的所有json都在我的系统中重新调整,将对象包含在名为object lile

的数据中
{
app_name:abc,
app_version:1
data:
{
   user :
   {
     name: "Adrian",
     roll: 77
   }

}

我发送给客户端的任何类型的对象,我希望它们属于这种类型。任何人都可以告诉我如何做到这一点吗?

亲切的问候。

1 个答案:

答案 0 :(得分:3)

如果要将Data实例包装到某种包装器中,请使用正确的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();
}