在写项目时,有时候会希望在接口层返回的字段中过滤掉为null值的字段,可以在返回的对象类上加上注解@JsonInclude(JsonInclude.Include.NON_NULL)
举例如下:
1、自定义返回方法体:
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonInclude.Include;
@JsonInclude(Include.NON_EMPTY)
public class ResponseObj<T> {
private T result;
private Integer code;
private String msg;
public ResponseEnvelope(T result) {
this.result = result;
this.code = 200;
}
public T getResult() {
return result;
}
public void setResult(T result) {
this.result = result;
}
public Integer getCode() {
return code;
}
public void setCode(Integer code) {
this.code = code;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
}
Controller层接口方法:
@GetMapping("/param/stu")
public ResponseEntity<ResponseObj<Stu>> StuTest(@RequestParam Long id){
LOG.info("进入控制层");
Stu stu = stuService.selectById(id);
ResponseObj<Stu> response = new ResponseObj<>(stu);
return new ResponseEntity<>(response, HttpStatus.OK);
}
返回结果:
如果没有加上注解@JsonInclude(JsonInclude.Include.NON_NULL)的话,返回结果: