【问题标题】:Spring restTemplate .postForObject() mapping cannot access elementSpring restTemplate .postForObject() 映射无法访问元素
【发布时间】:2021-08-03 09:45:53
【问题描述】:

我正在尝试使用 restTemplate.postForObject(URL, Session.class) 方法并将响应映射到 POJO。这部分有效,但是当我尝试访问名称如“name-with-dashes”的元素时,我找不到该元素。

我从方法调用中提取的 JSON:

{"age":60,"expire":12345,"name-with-dashes":"This name has dashes?!"...}

这是我用来提取此数据的 POJO:

@Getter
@Setter
@JsonIgnoreProperties(ignoreUnknown = true)
public class Session {
        private int age;
        private long expire;
        //will not grab name-with-dashes... returns null
        private String nameWithDashes;
}

【问题讨论】:

    标签: java spring spring-boot resttemplate


    【解决方案1】:

    您应该使用@JsonProperty 注释来注释您的字段,尤其是那些不符合bean 命名约定的字段,如下所示:

    @JsonProperty("name-with-dashes")
    private String nameWithDashes;
    

    【讨论】:

      【解决方案2】:

      您可以对属性进行注释

      @SerializedName("name-with-dashes")
      private String nameWithDashes;
      

      使用 Gson

      【讨论】:

        猜你喜欢
        • 2014-08-05
        • 2019-03-20
        • 1970-01-01
        • 2018-04-26
        • 2011-07-05
        • 1970-01-01
        • 2014-11-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多