Spring restTemplate .postForObject() 映射无法访问元素

Spring restTemplate .postForObject() mapping cannot access element

我正在尝试使用 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;
}

您可以注释 属性

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

使用 Gson

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

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