在springmvc开发中, 有时候会遇到忽略字段的情况, 比较常见的需求为: controller层返回参数, 将对象转为json时,忽略一些字段的序列化, 即不返还部分字段, 如密码字段
本文以下案例使用jackson测试, 添加spring-boot-starter-web的maven配置即可
方式一: 直接在字段上配置, lombok的@Data注解不影响(推荐)
import com.fasterxml.jackson.annotation.JsonProperty;
@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
private String name;
方式二: 直接在字段上配置注解
import com.fasterxml.jackson.annotation.JsonProperty;
@Getter(onMethod = @__(@JsonIgnore))
@Setter(onMethod = @__(@JsonProperty))
private String name;
方式三: 在字段的getter, setter方法上配置注解
import com.fasterxml.jackson.annotation.JsonProperty;
private String name;
// controller层返回时, 对象转json
@JsonIgnore
public String getName() {
return name;
}
// controller层接收参数时, json转对象
@JsonProperty
public void setName(String name) {
this.name = name;
}