AbhiRam
AbhiRam

Reputation: 2061

JsonProperty is getting ignored in Spring Boot

I want to change my json response _sddInfo to dropOffShippingInfo but below @JsonProperty getting ignored. 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"
        }
    ]

Upvotes: 0

Views: 1219

Answers (2)

Nemanja
Nemanja

Reputation: 3669

In the past Jackson may have supported one name for serialization and another for deserialization. Not anymore. Therefore, you should annotate a getter with @JsonProperty("dropOffShippingInfo"), it expects the incoming json payload to also have dropOffShippingInfo

Upvotes: 1

Thirumal
Thirumal

Reputation: 9556

Add @JsonProperty("dropOffShippingInfo") to getter method and make sure you are importing right 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;
    }

}

Upvotes: 0

Related Questions