映射JSON默认标签到Java变量



我正在消费一项休息服务,其中传入的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关键字"默认"。

正确的答案是添加@SerializedName("默认值"),如下:

public class ThumbNailUrlDTO {
private String small;
private String medium;

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

最新更新