繁体   English   中英

如何在 Spring 引导应用程序的 API 中添加额外的 JSON 属性?

[英]How to add additional JSON properties like this in API in Spring Boot application?

我正在实现一个 REST API,它使用 JSON 发送和接收数据(我对这个 ZDB9742387143ACE146 设计完全陌生) 我正在使用 Spring 框架。 我想在我的 API 中显示主 JSON 主体之外的状态代码iso 我应该怎么办??

像这样:

[
  [
{
   "status":"200",
    "iso":"03"
  }
],  
    {
        "id": 0,
        "lat": "33.93911",
        "long": "67.709953",
        "provinceState": ""
    },
    {
        "id": 1,
        "lat": "41.1533",
        "long": "20.1683",
        "provinceState": ""
    }

]

这是我的 pojo 课程。

实体



@Entity
public class GlobalDeadEntity {

    @Id
    private Long id;
    private int status;
    private int iso;


    public GlobalDeadEntity() {
    }

    public GlobalDeadEntity(Long id, Integer totalReportedDead, Integer totalDeadToday) {
        this.id = id;
        this.status = totalReportedDead;
        this.iso = totalDeadToday;
    }

    @JsonIgnore
    @JsonProperty(value = "id")
    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public int getStatus() {
        return status;
    }

    public void setStatus(int status) {
        this.status = status;
    }

    public int getIso() {
        return iso;
    }

    public void setIso(int iso) {
        this.iso = iso;
    }
}

谢谢你的帮助。

我没有注意到您的问题中 POJO 的位置也遵循最佳实践,您必须将 DB model 和 web model 分开:无论如何,您必须将它们包含在一个

@Entity
public class GlobalDeadEntity {

    @Id
    private Long id;
    private int status;
    private int iso;


    public GlobalDeadEntity() {
    }

    public GlobalDeadEntity(Long id, Integer totalReportedDead, Integer totalDeadToday) {
        this.id = id;
        this.status = totalReportedDead;
        this.iso = totalDeadToday;
    }

    @JsonIgnore
    @JsonProperty(value = "id")
    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public int getStatus() {
        return status;
    }

    public void setStatus(int status) {
        this.status = status;
    }

    public int getIso() {
        return iso;
    }

    public void setIso(int iso) {
        this.iso = iso;
    }
}

假设以下信息代表位置信息::

@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonPropertyOrder({
        "id",
        "lat",
        "long",
        "provinceState"
})
public class Info {

    @JsonProperty("id")
    private Integer id;
    @JsonProperty("lat")
    private String lat;
    @JsonProperty("long")
    private String _long;
    @JsonProperty("provinceState")
    private String provinceState;

    public Info(Integer id, String lat, String _long, String provinceState) {
        this.id = id;
        this.lat = lat;
        this._long = _long;
        this.provinceState = provinceState;
    }

    @JsonProperty("id")
    public Integer getId() {
        return id;
    }

    @JsonProperty("id")
    public void setId(Integer id) {
        this.id = id;
    }

    @JsonProperty("lat")
    public String getLat() {
        return lat;
    }

    @JsonProperty("lat")
    public void setLat(String lat) {
        this.lat = lat;
    }

    @JsonProperty("long")
    public String getLong() {
        return _long;
    }

    @JsonProperty("long")
    public void setLong(String _long) {
        this._long = _long;
    }

    @JsonProperty("provinceState")
    public String getProvinceState() {
        return provinceState;
    }

    @JsonProperty("provinceState")
    public void setProvinceState(String provinceState) {
        this.provinceState = provinceState;
    }

}

那么你可以传递GlobalDeadEntityHolder而不是直接传递GlobalDeadEntity如下:

public class GlobalDeadEntityHolder {

    private List<Info> InfoList;
    private GlobalDeadEntity GlobalDeadEntity;

    public GlobalDeadEntityHolder(List<Info> infoList, GlobalDeadEntity globalDeadEntity) {
        InfoList = infoList;
        GlobalDeadEntity = globalDeadEntity;
    }

    public List<Info> getInfoList() {
        return InfoList;
    }

    public void setInfoList(List<Info> infoList) {
        InfoList = infoList;
    }

    public GlobalDeadEntity getGlobalDeadEntity() {
        return GlobalDeadEntity;
    }

    public void setGlobalDeadEntity(GlobalDeadEntity globalDeadEntity) {
        GlobalDeadEntity = globalDeadEntity;
    }
} 

暂无
暂无

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

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