Spring Boot @JsonProperty 注解的使用方法
Spring Boot 中使用 @JsonProperty 注解可以实序列化时的字段控制,可以指定序列化字段的名字,也可以指定字段是否可以被序列化或反序列化,以及可以指定字段的默认值。
使用方法
@JsonProperty 注解可以用在属性或者 getter 上,属性上的注解优先级比 getter 高。
1.指定序列化字段的名字
@JsonProperty("name") private String userName;
使用 @JsonProperty 注解可以指定序列化字段的名字,这样在序列化时字段就会变成 name,而不是 userName。
2.指定字段是否可以被序列化或反序列化
@JsonProperty(access = JsonProperty.Access.WRITE_ONLY) private String password;
使用 @JsonProperty 注解可以指定字段是否可以被序列化或反序列化,上面的代码指定 password 字段只能被序列化,不能被反序列化,也就是说在序列化时 password 字段会被输出,但是在反序列化时 password 字段会被忽略,不会被赋值。
3.指定字段的默认值
@JsonProperty(defaultValue = "zhangsan") private String userName;
使用 @JsonProperty 注解可以指定字段的默认值,上面的代码指定 userName 字段的默认值是 zhangsan,如果在反序列化时 userName 字段没有传值,那么 userName 字段的值就会被设置为 zhangsan。
4.指定字段的名字和默认值
@JsonProperty(value = "name", defaultValue = "zhangsan") private String userName;
使用 @JsonProperty 注解可以同时指定字段的名字和默认值,上面的代码指定 userName 字段的名字是 name,默认值是 zhangsan,如果在反序列化时 userName 字段没有传值,那么 userName 字段的值就会被设置为 zhangsan,而在序列化时 userName 字段会被输出为 name。
5.指定字段的名字、是否可以被序列化或反序列化、以及默认值
@JsonProperty(value = "name", access = JsonProperty.Access.WRITE_ONLY, defaultValue = "zhangsan") private String userName;
使用 @JsonProperty 注解可以同时指定字段的名字、是否可以被序列化或反序列化,以及默认值,上面的代码指定 userName 字段的名字是 name,只能被序列化,不能被反序列化,默认值是 zhangsan,如果在反序列化时 userName 字段没有传值,那么 userName 字段的值就会被设置为 zhangsan,而在序列化时 userName 字段会被输出为 name,但是在反序列化时 userName 字段会被忽略,不会被赋值。
Spring Boot 中使用 @JsonProperty 注解可以实序列化时的字段控制,可以指定序列化字段的名字,也可以指定字段是否可以被序列化或反序列化,以及可以指定字段的默认值。使用 @JsonProperty 注解可以用在属性或者 getter 上,属性上的注解优先级比 getter 高。