SpringBoot之FastJson实现封装的Json数据指定字段属性隐藏小工具
程序员文章站
2024-01-31 08:31:22
...
背景:
在开发项目中发现有个需求,那就是传输的Json数据中在字段值为空或者int属性值为0的时候自动实现该字段值的隐藏,然后传输,便于接收服务的处理,我们将会采用FastJson来实现该功能。
步骤:
首先:测试代码如下所示,核心部分就是在需要过滤字段的地方进行一下判断。
apply函数参数分别表示对象,要过滤的属性字段,以及字段的值。
@Test
void test4() {
Book book = new Book();
book.setId(1);
book.setName("gcg");
book.setPrice("20");
System.out.println("过滤前的对象属性:" + JSON.toJSONString(book));
PropertyFilter profilter = new PropertyFilter() {
@Override
public boolean apply(Object object, String name, Object value) {
if (name.equalsIgnoreCase("name") && value.equals("gcg")) {
return false;
}
return true;
}
};
System.out.println("过滤后的对象属性:" + JSON.toJSONString(book, profilter));
}
测试结果如下:
过滤前的对象属性:{"id":1,"name":"gcg","price":"20"}
过滤后的对象属性:{"id":1,"price":"20"}