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

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 我这模型写的不对吗?为什么lingo解出来的下面影子价格这一溜少一个变量
  • ¥50 树莓派安卓APK系统签名
  • ¥15 maple软件,用solve求反函数出现rootof,怎么办?
  • ¥65 汇编语言除法溢出问题
  • ¥15 Visual Studio问题
  • ¥20 求一个html代码,有偿
  • ¥100 关于使用MATLAB中copularnd函数的问题
  • ¥20 在虚拟机的pycharm上
  • ¥15 jupyterthemes 设置完毕后没有效果
  • ¥15 matlab图像高斯低通滤波