簡體   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