unassuming 2016-12-27 10:29 采纳率: 54.5%
浏览 2310
已结题

jersey资源response怎样返回JSon而不是对象

返回的如果是java实体,前端收到的是JSon,当返回的实体放进response中时,前端收到的就是对象而不是Json了,这是怎么回事,我需要传JSon
把实体放进自定义response中,返回的居然是java对象
直接返回实体,这样没问题是Json

下面贴resource代码
@Path("/User")
public class UserResource
{
@GET
@Path("/")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public StudentEntity query(){
StudentEntity studentEntity = new StudentEntity();
BookEntity bookEntity = new BookEntity();
bookEntity.setId((long) 12321);
bookEntity.setAge(18);
bookEntity.setName("王二小");
studentEntity.setId((long) 12321);
studentEntity.setAge(18);
studentEntity.setName("王二小");
studentEntity.setBook(bookEntity);
return studentEntity;
}
}

@Path("/User")
public class UserResource
{
@GET
@Path("/")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public Response query(){
StudentEntity studentEntity = new StudentEntity();
BookEntity bookEntity = new BookEntity();
bookEntity.setId((long) 12321);
bookEntity.setAge(18);
bookEntity.setName("王二小");
studentEntity.setId((long) 12321);
studentEntity.setAge(18);
studentEntity.setName("王二小");
studentEntity.setBook(bookEntity);
return ResponseBuilder.buildSuccessResponse(studentEntity);
}
}
然后是自定义response
public class BaseResponse implements Serializable{

private static final long serialVersionUID = 8647598317829542864L;

private Boolean success = true; 

private String message; 

private Object result;

private PagerResultInfo result_info;

public Boolean getSuccess() {
    return success;
}
public void setSuccess(Boolean success) {
    this.success = success;
}
public String getMessage() {
    return message;
}
public void setMessage(String message) {
    this.message = message;
}
public Object getResult() {
    return result;
}
public void setResult(Object result) {
    this.result = result;
}
public PagerResultInfo getResult_info() {
    return result_info;
}
public void setResult_info(PagerResultInfo result_info) {
    this.result_info = result_info;
}

}
public class ResponseBuilder {
public static Response buildSuccessResponse(Object obj) {

        if (obj instanceof Pager) { return buildPager((Pager) obj); }

        BaseResponse response = new BaseResponse();

        response.setSuccess(Boolean.valueOf(true));

        response.setMessage("操作成功!");

        response.setResult(obj);

        return Response.status(Response.Status.OK).entity(response).build();
    }

}

  • 写回答

2条回答 默认 最新

  • devmiao 2016-12-27 16:53
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 树莓派与pix飞控通信
  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题