在JAX-RS中从pojo生成自定义响应

时间:2014-06-24 10:19:22

标签: web-services jax-rs

我的要求如下。

Emp{
 String id;
 String name;
}

Employee emp = (Object from service)
builder.entity(emp);

但是当建立响应为JSON时,我想将其生成为

{
 employee_id : val,
 full_name : val,
 //custom attribute in pojo i wanted to inject
 company_url : xxx.com
}

在这里,我无法访问Emp类来添加属性以使用注释更改JSON元素名称。

1 个答案:

答案 0 :(得分:1)

你可以创建一个用JAXB注释注释的EmpDTO类,在资源方法中实现该类并返回它(带有你需要的所有额外数据,如你所解释的),然后JAX-RS实现将转换将DTO转换为JSON消息。

或者您可以创建自己的MessageBodyWriter(使用@Producer + @Produces("application/json")注释)并处理Emp类并生成JSON消息(使用JSON-P API例如)。

HTH。 泽维尔