jackson 序列化 忽略为空的字段

苗哥哥 2017-04-26 02:15:54
package com.winston.test.json;

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;

/**
* @Description:
* @Author Winston
* @Version 1.0 2017/4/25 15:29
*/
public class JackSonTest {
public static void main(String[] args) {

ObjectMapper objectMapper = new ObjectMapper();
try {
Student student = new Student();
student.setName("小明");
student.setAddress("");
//过滤为null的属性、如上面的student中对address设为“” 此处任然可以打印出来
objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
System.out.println(objectMapper.getSerializationConfig().getSerializationInclusion()+":"+objectMapper.writeValueAsString(student));
//过滤为null和“”的属性、如上面的student中对address设为“” 此处不能打印出来
objectMapper.setSerializationInclusion(JsonInclude.Include.NON_EMPTY);
System.out.println(objectMapper.getSerializationConfig().getSerializationInclusion()+":"+objectMapper.writeValueAsString(student));
} catch (JsonProcessingException e) {
e.printStackTrace();
}
}

}


class Student{
private String name;
private int age;
private String eamil;
private String address;
public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public int getAge() {
return age;
}

public void setAge(int age) {
this.age = age;
}

public String getEamil() {
return eamil;
}

public void setEamil(String eamil) {
this.eamil = eamil;
}

public String getAddress() {
return address;
}

public void setAddress(String address) {
this.address = address;
}
}


输出结果为:
NON_NULL:{"name":"小明","age":0,"address":""}
NON_EMPTY:{"name":"小明","age":0,"address":""}

按照代码里面的注释来说 第二次打印内容应该为NON_EMPTY:{"name":"小明","age":0}
...全文
672 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
little_how 2017-05-05
  • 打赏
  • 举报
回复
你的空串不是空,你应该不设置address,或者student.setAddress(null);
IOE_X 2017-05-05
  • 打赏
  • 举报
回复
objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); 配置下ObjectMapper序列化的参数就行

50,528

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧