将JSON默认标记映射到java变量
我正在使用一个rest服务,其中传入的JSon响应如下将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
"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”