繁体   English   中英

泽西岛HTTP响应返回json值

[英]Jersey HTTP Response return json value

public class Dto {
    private boolean flag;
    private String code;
    private String message;
    private Object data;
    ......
}

这是一种通用的返回格式。

@GET
@Path("/test2")
public Response appLogin2() {
    Dto dto = new Dto();
    Device device = new Device();
    device.setAreaName("NewYork");
    dto.setData(device);
    dto.setFlag(true);
    Response res = Response.status(Status.OK).entity(dto).build();
    return res;
}

但是现在它的返回值是

{
    "data": "com.gmi.its.itsmain.model.Device@7067fd1f",
    "flag": true
}

我如何获得该返回值

{
    "data": {
            "areaName": "NewYork"
        },
    "flag": true
}

我的用户springboot可以获取该返回值。

您应该为该data属性指定一个类。 当前,它被作为对象读取,这意味着串行器不知道对此会有什么期望。 序列化程序唯一可以做的就是调用对象的toString()方法,该方法输出className@hashCode

尝试这样的事情:

public class Dto {
  private boolean flag;
  private String code;
  private String message;
  private Device data;
  ......
}

如果不确定要用于data字段的类,则应创建一个接口,所有这些可能的类都将从该接口扩展。

字符串jsonString = JSON.toJSONString(dto); 返回Response.status(Status.OK).entity(jsonString).build();

我现在是这样做的

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM