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

时间:2016-06-20 02:14:56

标签: java spring jackson

我正在使用一个休息服务,其中传入的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关键字我该如何处理这个问题

2 个答案:

答案 0 :(得分:5)

是"默认",无效的VariableDeclaratorId,你不能在java中使用default作为变量名,它是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;
}

这将解决问题。

答案 1 :(得分:2)

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

public class ThumbNailUrlDTO {

    private String small;

    private String medium;


    private String large;

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

通过这种方式,您可以避免使用java关键字“default”。