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

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

反序列化杰克遜中的可選可空字段

反序列化杰克遜中的可選可空字段

慕少森 2022-06-23 19:27:46
我有一個Employee類,我想像這樣序列化:class Employee {  String name;  @JsonUnwrapped  EmployeeId id;   @JsonUnwrapped(prefix = "previousEmployee")  EmployeeId previousEmployeeId;}final class EmployeeId{ @JsonProperty("id") private final long value; @JsonCreator public EmployeeId(@JsonProperty("id") long value) {    this.value = value; }}序列化Employee給出以下 json:{  "name":"foo",  "id" : 123,  "previousEmployeeid" : 456}但是,這previousEmployeeId是可選的。因此,如果我嘗試反序列化這個 json,它會將 inid放入previousEmployeeId字段中。我究竟做錯了什么?{  "name":"foo",  "id" : 123}我希望該字段previousEmployeeid是,null但它被分配了一個值123。
查看完整描述

1 回答

?
慕無忌1623718

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

你去吧!


final class EmployeeId {

    @JsonProperty("id")

    private final long value;


    @JsonCreator

    public EmployeeId(@JsonProperty("whatever") long value) {

        this.value = value;

    }

}

查看whateveras@JsonProperty值。您可以放入任何不為空但不是id.

順便說一句,這一定是某種錯誤。


記住它不可能null,因為內部value是原始類型。并且包裝對象無論如何都不會為空。


JsonCreator與您一起使用JsonUnwrapped不能有null EmployeeId

http://img1.sycdn.imooc.com//62b44e530001232107100249.jpg

我總是測試我的代碼。有用。

http://img1.sycdn.imooc.com//62b44e6000011d4907850311.jpg


查看完整回答
反對 回復 2022-06-23
  • 1 回答
  • 0 關注
  • 101 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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