fastjson过滤不需要的属性

以下是一个通用的对象转json的方法,使用的fastjson的SimplePropertyPreFilter 对象,个人感觉比使用PropertyPreFilter的匿名内部类形式的过滤器更好用!

直接上代码:

/**
* 将对象序列化为json,并回写到客户端浏览器
*/
public void objectToJson(Object obj, String[] args) {
//属性过滤器对象
SimplePropertyPreFilter filter = new SimplePropertyPreFilter();

//属性排斥集合,强调某些属性不需要或者一定不能被序列化
Set<String> excludes = filter.getExcludes();

//属性包含集合,强调仅需要序列化某些属性.具体用哪一个,看实际情况.此处我用的前者
//Set<String> includes = filter.getIncludes();

//排除不需序列化的属性
for (String string : args) {
excludes.add(string);
}

//调用fastJson的方法,对象转json,
//参数一:需要被序列化的对象
//参数二:用于过滤属性的过滤器
//参数三:关闭循环引用,若不加这个,页面无法展示重复的属性值
String string = JSON.toJSONString(obj, filter,SerializerFeature.DisableCircularReferenceDetect);

//页面回写
HttpServletResponse response = ServletActionContext.getResponse();
response.setContentType("text/json;charset=utf-8");
try {
response.getWriter().print(string);
} catch (IOException e) {
e.printStackTrace();
}
}
posted @ 2017-03-10 13:27  苹果环境  阅读(5618)  评论(0编辑  收藏  举报