JsonProperty在Spring Boot中被忽略了

huangapple 未分类评论63阅读模式
英文:

JsonProperty is getting ignored in Spring Boot

问题

我想将我的 JSON 响应中的 _sddInfo 更改为 dropOffShippingInfo,但是下面的 @JsonProperty 被忽略了。我该如何解决这个问题?

  1. @JsonInclude(JsonInclude.Include.NON_NULL)
  2. public class EligibleShippingMethods implements Serializable {
  3. private static final long serialVersionUID = 1L;
  4. @JsonProperty("dropOffShippingInfo")
  5. private DropOffShippingInfo _sddInfo;
  6. public DropOffShippingInfo get_sddInfo() {
  7. return _sddInfo;
  8. }
  9. public void set_sddInfo(DropOffShippingInfo _sddInfo) {
  10. this._sddInfo = _sddInfo;
  11. }
  12. }

响应

  1. "eligibleShippingMethods": [
  2. {
  3. "dropOffShippingInfo": {
  4. "startTime": "2020-08-21T15:00:00Z",
  5. "endTime": "2020-08-21T17:00:00Z",
  6. "customerScheduleType": "window"
  7. }
  8. }
  9. ]
英文:

I want to change my json response _sddInfo to dropOffShippingInfo but below @JsonProperty getting ignored. How can I solve this issue?

  1. @JsonInclude(JsonInclude.Include.NON_NULL)
  2. public class EligibleShippingMethods implements Serializable {
  3. private static final long serialVersionUID = 1L;
  4. @JsonProperty("dropOffShippingInfo")
  5. private DropOffShippingInfo _sddInfo;
  6. public DropOffShippingInfo get_sddInfo() {
  7. return _sddInfo;
  8. }
  9. public void set_sddInfo(DropOffShippingInfo _sddInfo) {
  10. this._sddInfo = _sddInfo;
  11. }
  12. }

response

  1. "eligibleShippingMethods": [
  2. "_sddInfo": {
  3. "startTime": "2020-08-21T15:00:00Z",
  4. "endTime": "2020-08-21T17:00:00Z",
  5. "customerScheduleType": "window"
  6. }
  7. ]

答案1

得分: 1

过去,Jackson 可能会支持序列化的名称与反序列化的名称不同。但现在不再支持这样做。因此,您应该使用 @JsonProperty("dropOffShippingInfo") 注解在一个 getter 方法上,它会期望传入的 JSON 数据载荷中也有 dropOffShippingInfo

英文:

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

答案2

得分: 0

  1. getter方法中添加`@JsonProperty("dropOffShippingInfo")`并确保您导入了正确的包`com.fasterxml.jackson.annotation.JsonProperty`
  2. @JsonInclude(JsonInclude.Include.NON_NULL)
  3. public class EligibleShippingMethods implements Serializable {
  4. private static final long serialVersionUID = 1L;
  5. private DropOffShippingInfo _sddInfo;
  6. @JsonProperty("dropOffShippingInfo")
  7. public DropOffShippingInfo get_sddInfo() {
  8. return _sddInfo;
  9. }
  10. public void set_sddInfo(DropOffShippingInfo _sddInfo) {
  11. this._sddInfo = _sddInfo;
  12. }
  13. }
英文:

Add @JsonProperty("dropOffShippingInfo") to getter method and make sure you are importing right package com.fasterxml.jackson.annotation.JsonProperty

  1. @JsonInclude(JsonInclude.Include.NON_NULL)
  2. public class EligibleShippingMethods implements Serializable {
  3. private static final long serialVersionUID = 1L;
  4. private DropOffShippingInfo _sddInfo;
  5. @JsonProperty("dropOffShippingInfo")
  6. public DropOffShippingInfo get_sddInfo() {
  7. return _sddInfo;
  8. }
  9. public void set_sddInfo(DropOffShippingInfo _sddInfo) {
  10. this._sddInfo = _sddInfo;
  11. }
  12. }

huangapple
  • 本文由 发表于 2020年8月20日 22:48:29
  • 转载请务必保留本文链接:https://java.coder-hub.com/63507661.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定