关于jackJson注解的一些常用的小知识点总结,本文转载借鉴自PostTruth博主的文章,看后收获颇丰,在此做个自我的记录.
- @JsonProperty
@JsonProperty 可以指定某个属性和json映射的名称。例如我们有个json字符串为{“user_name”:”aaa”},
而java中命名要遵循驼峰规则,则为userName,这时通过@JsonProperty 注解来指定两者的映射规则即可。这个注解也比较常用。
public class User{
@JsonProperty("user_name")
private String userName;
//...
}
- @JsonInclude
在将 java pojo 对象序列化成为 json 字符串时,使用 @JsonInclude 注解可以控制在哪些情况下才将被注解的属性转换成 json,例如只有属性不为 null 时。
@JsonInclude(JsonInclude.Include.NON_NULL)
public class User{
@JsonProperty("user_name")
private String userName;
//...
}
- @JsonSetter
@JsonSetter 标注于 setter 方法上,类似 @JsonProperty ,也可以解决 json 键名称和 java pojo 字段名称不匹配的问题。
下面这个例子中在将 json 字符串转换成 User 实例时,会将 json 字符串中的 userNameInfo字段赋值给 User的 userName 属性。
public class User{
private String userName;
@JsonSetter("userNameInfo")
public void setUserName(String userName) {
this.userName= userName;
}
}