将JSON默认标记映射到java变量

将JSON默认标记映射到java变量,java,spring,jackson,Java,Spring,Jackson,我正在使用一个rest服务,其中传入的JSon响应如下 "thumbnailUrls": { "small": "skinresources/unpackaged/images/default_event.jpg", "medium": "skinresources/unpackaged/images/default_event.jpg", "large": "skinresources/unpackaged/images/default_event.jpg

我正在使用一个rest服务,其中传入的JSon响应如下

 "thumbnailUrls": {
      "small": "skinresources/unpackaged/images/default_event.jpg",
      "medium": "skinresources/unpackaged/images/default_event.jpg",
      "large": "skinresources/unpackaged/images/default_event.jpg",
      "default": "skinresources/unpackaged/images/default_event.jpg"
    },
我创建了一个Java类来映射下面列出的值,下面是Java代码

public class ThumbNailUrlDTO {

    private String small;

    private String medium;


    private String large;

    private String default;
}
我遇到的问题是,我不能在这里使用默认名称,因为它是java关键字。我如何处理这个问题

是“默认”,VariableDeclaratorId无效,您不能在java中使用默认名称作为变量名,它是java中的预定义关键字

更改json字段名的变量名和映射,如下所示:- 使用
@JsonProperty

public class ThumbNailUrlDTO {
    @JsonProperty("small")
    private String small;

    @JsonProperty("medium")
    private String medium;

    @JsonProperty("large")
    private String large;

    @JsonProperty("default")
    private String defaultStr;
}

这将解决问题。

您可以使用注释来自定义用于以下属性的JSON名称:

public class ThumbNailUrlDTO {

    private String small;

    private String medium;


    private String large;

    @JsonProperty("default")
    private String defaultVal;
}
这样,就可以避免使用java关键字“default”