我正在消费一项休息服务,其中传入的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;
}