關於 fastjson 中的 SimplePropertyPreFilter
来源:互联网 发布:日志数据库 编辑:程序博客网 时间:2024/06/07 01:27
版本:fastjson-1.1.26
SimplePropertyPreFilter源碼:package com.alibaba.fastjson.serializer;import java.util.HashSet;import java.util.Set;public class SimplePropertyPreFilter implements PropertyPreFilter { private final Class<?> clazz; private final Set<String> includes = new HashSet<String>(); private final Set<String> excludes = new HashSet<String>(); public SimplePropertyPreFilter(String... properties){ this(null, properties); } public SimplePropertyPreFilter(Class<?> clazz, String... properties){ super(); this.clazz = clazz; for (String item : properties) { if (item != null) { this.includes.add(item); } } } public Class<?> getClazz() { return clazz; } public Set<String> getIncludes() { return includes; } public Set<String> getExcludes() { return excludes; } public boolean apply(JSONSerializer serializer, Object source, String name) { if (source == null) { return true; } if (clazz != null && !clazz.isInstance(source)) { return true; } if (this.excludes.contains(name)) { return false; } if (includes.size() == 0 || includes.contains(name)) { return true; } return false; }}
於是得動手修改,我另外寫了個類:
public class SimplePropertyPreFilter implements PropertyPreFilter { private final Class<?> clazz; private Set<String> includes = new HashSet<String>(); private Set<String> excludes = new HashSet<String>(); public SimplePropertyPreFilter(String... properties){ this(null, properties); } public SimplePropertyPreFilter(Class<?> clazz, String... properties){ super(); this.clazz = clazz; for (String item : properties) { if (item != null) { this.includes.add(item); } } } public Class<?> getClazz() { return clazz; } public boolean apply(JSONSerializer serializer, Object source, String name) { if (source == null) { return true; } if (clazz != null && !clazz.isInstance(source)) { return true; } if (this.excludes.contains(name)) { return false; } if (includes.size() == 0 || includes.contains(name)) { return true; } return false; } public Set<String> getIncludes() { return includes; } public Set<String> getExcludes() { return excludes; } public void setIncludes(Set<String> includes) {this.includes = includes;}public void setExcludes(Set<String> excludes) {this.excludes = excludes;}}
簡單做了個測試:
public static String bean(Object object){Set<String> excludes = new HashSet<String>();excludes.add("name");SimplePropertyPreFilter spp = new SimplePropertyPreFilter();spp.setExcludes(excludes);return JSON.toJSONString(object,spp);}
OK!
- 關於 fastjson 中的 SimplePropertyPreFilter
- fastjson之serializer.SimplePropertyPreFilter
- 在fastjson中使用SimplePropertyPreFilter忽略指定属性
- fastjson解析中的javaBean
- 阿里巴巴中的FastJson解析
- fastjson使用过程中的坑
- fastjson在springboot中的使用
- fastJson
- FastJson
- fastjson
- fastjson
- fastjson
- fastjson
- fastjson
- fastJson
- fastjson
- fastjson
- fastJson
- Treap tree
- 安装 Git 版本控制工具
- 魔术引号与递归转义
- Python面试题集合
- GCD的一些小应用
- 關於 fastjson 中的 SimplePropertyPreFilter
- JAVA线程池ThreadPoolExecutor
- awrrpt.sql报错:ORA-00904: : invalid identifier
- 为Zend Studio (Eclipse)安装Spket插件,以支持ExtJS 4.0代码自动提示 .
- 完成TriewView实现导航
- Android中的权限怎么用?
- JS函数select()无法调用
- linux 进程间通讯方法整理
- 红黑树