接收到的需求:我们前端只需要id、name、gender,phone不需要给前端。 一开始想法直接重新写一个VO,属性里去掉phone,这样一下多了个文件,显然不是我们想要的!接下来教你两种方式实现一下哦!!
<!-- 第一种:jackson-->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
</dependency>
<!-- 第二种:fastjson -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.69</version>
</dependency>
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;
import java.io.Serializable;
@Data
public class Test implements Serializable {
private static final long serialVersionUID = 337361630075002456L;
private String id;
private String name;
private String gender;
@JsonIgnore
private String phone;
}
import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;
import java.io.Serializable;
@Data
public class Test implements Serializable {
private static final long serialVersionUID = 337361630075002456L;
private String id;
private String name;
private String gender;
@JSONField(serialize = false)
private String phone;
}
两个不要一起使用,不然不起作用
其中fastjson这样还不起作用,我们需要在启动项里配置一下
@Bean
public HttpMessageConverters fastJsonHttpMessageConverters() {
FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();
FastJsonConfig fastJsonConfig = new FastJsonConfig();
fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat);
fastConverter.setFastJsonConfig(fastJsonConfig);
HttpMessageConverter<?> converter = fastConverter;
return new HttpMessageConverters(converter);
}
这样就可以解决忽略某些属性不返回给前端展示了!!
Q.E.D.