案例
在前后台分离式开发中,后台要向前端递json数据,很多前端程序员不想json中有null的数据,如下:
{"code":0,"msg":"hello",data:null}
data:null不要出现在json串中
解决
@JsonInclude注解的作用:java对象转json字符串时,当对象的属性为null时,该属性不会出现在json字符串中
例子
@JsonInclude(JsonInclude.Include.NON_NULL)
public class JsonResult<T> {
/**
* code:
* 0:表示成功
*/
private int code;
private String msg;
private T data;
public JsonResult() {
}
public JsonResult(int code,String msg){
this.code=code;
this.msg=msg;
}
public JsonResult(int code,T data){
this.code=code;
this.data=data;
}
public JsonResult(int code,String msg,T data){
this.code=code;
this.msg=msg;
this.data=data;
}
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public T getData() {
return data;
}
public void setData(T data) {
this.data = data;
}
}
测试1
将java对象转换json字符串
JsonResult<List> jr=new JsonResult();
jr.setCode(0);
jr.setMsg("hello");
ObjectMapper om=new ObjectMapper();
String json=om.writeValueAsString(jr);
System.out.println(json);
执行结果:
{"code":0,"msg":"hello"}
因为data为null,所以转换时不包含
测试2
将java对象转换json字符串
JsonResult<List> jr=new JsonResult();
jr.setCode(0);
//jr.setMsg("hello");
ObjectMapper om=new ObjectMapper();
String json=om.writeValueAsString(jr);
System.out.println(json);
执行结果:
{"code":0}
因为msg和data为null,所以转换时不包含