Java 包装列表时获取额外信息<;对象>;在http JAX RS响应中
类以获取http映射请求的响应Java 包装列表时获取额外信息<;对象>;在http JAX RS响应中,java,rest,jax-rs,Java,Rest,Jax Rs,类以获取http映射请求的响应 @RequestMapping(value=“/fetch”,method=RequestMethod.POST) 公共响应getAllXYZDetails(@RequestBody QueryDetails queryDetailsPayLoad){ List xyzentylist=xyzService.getAllXYZDetails(); 返回Response.ok(xyzentylist) .build(); } 我试图从http REST调用的控制器
@RequestMapping(value=“/fetch”,method=RequestMethod.POST)
公共响应getAllXYZDetails(@RequestBody QueryDetails queryDetailsPayLoad){
List xyzentylist=xyzService.getAllXYZDetails();
返回Response.ok(xyzentylist)
.build();
}
我试图从http REST调用的控制器类中构建一个通用响应类型,因此我的返回类型是response。
现在发生的是:
生成的响应不仅包含我想要的json细节,而且还包含很多额外信息,如
entityType和entityAnnotations等(参见上面的回答),我不想要这些。
如何摆脱这些ans,只获取响应中的实体?如果您使用Jackson注释,您几乎可以配置所有内容。在您的情况下,
@JsonIgnore
就足够了
如果您正在使用JAX-RS/JAXB,那么在类的顶部添加
@JsonIgnoreProperties(ignoreUnknown=true)
您可以发布validationDetailsEntityWrapper类结构吗?公共类validationDetailsEntityWrapper实现MessageBodyWriter这是JAX-RS核心的直接响应。。我不能改变这一点。我想我可以在上面写一个包装。但我需要一些想法。你明白我的意思了吗?通过编辑你的问题来分享你的代码。是的,您应该返回您的根类。
{
"context": {
"headers": {},
"entity": {
"validationDetailsEntityList": [
{
"createTimestamp": 1512653225936,
"modifyTimestamp": 1512653225936,
"version": 0,
"auditTimestamp": "2"
},
{
"createTimestamp": 1512652876650,
"modifyTimestamp": 1512652876650,
"version": 0,
"auditTimestamp": "2"
},
{
"createTimestamp": 1512652955832,
"modifyTimestamp": 1512652955832,
"version": 0,
"auditTimestamp": "2"
}
]
}
"entityType":"com.example.demo.wrapper.ABCDWrapper",
"entityAnnotations": [],
@RequestMapping(value = "/fetch", method = RequestMethod.POST)
public Response getAllXYZDetails(@RequestBody QueryDetails queryDetailsPayLoad) {
List<XYZEntity> xyzEntityList = xyzService.getAllXYZDetails();
return Response.ok(xyzEntityList)
.build();