简体   繁体   English

JsonProperty 在 Spring Boot 中被忽略

[英]JsonProperty is getting ignored in Spring Boot

I want to change my json response _sddInfo to dropOffShippingInfo but below @JsonProperty getting ignored.我想将我的 json 响应 _sddInfo 更改为 dropOffShippingInfo 但在@JsonProperty下方被忽略。 How can I solve this issue?我该如何解决这个问题?

  @JsonInclude(JsonInclude.Include.NON_NULL)
    public class EligibleShippingMethods implements Serializable {
    
        private static final long serialVersionUID = 1L;
    
        @JsonProperty("dropOffShippingInfo")
        private DropOffShippingInfo _sddInfo;
    
        public DropOffShippingInfo get_sddInfo() {
            return _sddInfo;
        }
    
        public void set_sddInfo(DropOffShippingInfo _sddInfo) {
            this._sddInfo = _sddInfo;
        }

}

response回复

"eligibleShippingMethods": [
        "_sddInfo": {
          "startTime": "2020-08-21T15:00:00Z",
          "endTime": "2020-08-21T17:00:00Z",
          "customerScheduleType": "window"
        }
    ]

In the past Jackson may have supported one name for serialization and another for deserialization.过去 Jackson 可能支持一种名称用于序列化,另一种用于反序列化。 Not anymore.不再。 Therefore, you should annotate a getter with @JsonProperty("dropOffShippingInfo") , it expects the incoming json payload to also have dropOffShippingInfo因此,您应该使用@JsonProperty("dropOffShippingInfo")注释 getter,它期望传入的 json 有效负载也具有dropOffShippingInfo

Add @JsonProperty("dropOffShippingInfo") to getter method and make sure you are importing right package com.fasterxml.jackson.annotation.JsonProperty@JsonProperty("dropOffShippingInfo")添加到 getter 方法并确保您导入正确 package com.fasterxml.jackson.annotation.JsonProperty

@JsonInclude(JsonInclude.Include.NON_NULL)
public class EligibleShippingMethods implements Serializable {

    private static final long serialVersionUID = 1L;

    private DropOffShippingInfo _sddInfo;

    @JsonProperty("dropOffShippingInfo")
    public DropOffShippingInfo get_sddInfo() {
        return _sddInfo;
    }

    public void set_sddInfo(DropOffShippingInfo _sddInfo) {
        this._sddInfo = _sddInfo;
    }

}

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

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