@JsonUnwrapped將對象扁平

背景

有以下的實體類:

@Getter
@Setter
@ToString
public class Money {
    private double remain;
}

@Getter
@Setter
@ToString
public class PersonInfo {
    private String name;
    private int id;
}

@Getter
@Setter
@ToString
public class Account {
    private Money money;
    private PersonInfo personInfo;
}

在api中返回序列化之後是這樣的:

{
    "money": {
        "remain": 1030.0
    },
    "personInfo": {
        "name": "tangbaobao",
        "id": 1
    }
}

但是你如果想要扁平對象,只要內層對象,這時候可能會再新建一個實體類用來書寫這些屬性,但是那樣會多一個沒意義的實體類,並且對後期不好維護,好的解決方法見下邊:

解決

使用@JsonUnwrapped來扁平對象

@Getter
@Setter
@ToString
public class Account {
    @JsonUnwrapped
    private Money money;
    @JsonUnwrapped
    private PersonInfo personInfo;
}

結果

{
    "remain": 1030.0,
    "name": "tangbaobao",
    "id": 1
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章