亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

僅在 java 中的序列化上重命名字段

僅在 java 中的序列化上重命名字段

郎朗坤 2022-05-25 17:08:58
我有一個名為 AddOnsSRO 的對象。僅在序列化時,我希望更改對象的字段名稱。嘗試在 getter 方法上使用@JsonProperty,但即使在不涉及序列化的用法中,它也給了我一個重命名的字段。public class AddOnsSRO {    private String sideCar;    private String sideCarCoverage;    @JsonSerialize    @JsonProperty("abc")    public String getSideCar() {        return sideCar;    }    public void setSideCar(String sideCar) {        this.sideCar = sideCar;    }    @JsonSerialize    @JsonProperty("xyz")    public String getSideCarCoverage() {        return sideCarCoverage;    }    public void setSideCarCoverage(String sideCarCoverage) {        this.sideCarCoverage = sideCarCoverage;    }}僅在序列化時,以下字段 :sideCar和sideCarCoverage必須分別重命名為abc和xyz。對于除序列化之外的任何其他用途,字段名稱應該是sideCar且sideCarCoverage僅。請幫助并建議相應的更改或注釋。
查看完整描述

2 回答

?
MMTTMM

TA貢獻1869條經驗 獲得超4個贊

為了只影響序列化,請使用@JsonGetter而不是@JsonProperty


@JsonGetter("abc")

public String getSideCar() {

    return sideCar;

}

Getter 是指在序列化具有該方法的類的 Object 實例時(可能繼承自超類),通過該方法進行調用,并將返回值序列化為屬性值。


您可以添加@JsonSetter到 setter 方法進行反序列化:


@JsonSetter("sideCar")

public void setSideCar(String sideCar) {

    this.sideCar = sideCar;

}


查看完整回答
反對 回復 2022-05-25
?
陪伴而非守候

TA貢獻1757條經驗 獲得超8個贊

您的代碼看起來不錯...請升級您的杰克遜庫...如果您使用的是舊的



查看完整回答
反對 回復 2022-05-25
  • 2 回答
  • 0 關注
  • 188 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號