博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Jsonlib 属性过滤器
阅读量:6870 次
发布时间:2019-06-26

本文共 2122 字,大约阅读时间需要 7 分钟。

/**

* @title JSON转换属性过滤器
* @description 用于JSON lib的JSON转换
* @author maohuidong
* @date 2017-04-06
*/
public class JsonConvertPropertyFilter implements PropertyFilter {
/**
* @function apply
* @param obj:待转换的对象 s: 对象的属性 value:对象的属性值
* @description JSON转换属性过滤器(Hibernate)
* @return true:过滤 false:不过滤
* @author maohuidong
* @date 2017-04-06
*/
@Override
public boolean apply(Object obj, String s, Object value) {
// hibernate代理对象未初始化,则过滤掉
if (value instanceof HibernateProxy) {
LazyInitializer initializer = ((HibernateProxy) value)
.getHibernateLazyInitializer();
if (initializer.isUninitialized()) {
return true;
}
}
// Hibernate持久化集合为初始化,则过滤掉(实体关联一对多)
if (value instanceof PersistentCollection) {
PersistentCollection collection = (PersistentCollection) value;
if (!collection.wasInitialized()) {
return true;
}
}
return false;
}
}

 

 

 

/**

* @function objStreamOutput
* @param 无
* @description 输出流封装
* @return 无
* @author maohuidong
* @date 2017-04-09
*/
protected void objStreamOutput(Object object,List<String> fieldFilter) throws IOException{
HttpServletResponse response = ServletActionContext.getResponse();
response.setCharacterEncoding("utf-8");
PrintWriter pWriter = response.getWriter();
//Json过滤
JsonConfig jsonConfig = new JsonConfig();
jsonConfig.setIgnoreDefaultExcludes(false);
if(fieldFilter == null){
fieldFilter = new ArrayList<String>();
}
//Json转换过滤没用的字段
fieldFilter.add("hibernateLazyInitializer");
String[] filter = new String[fieldFilter.size()];
filter = fieldFilter.toArray(filter);
jsonConfig.setExcludes(filter);
//Json转换过滤未初始化的数据
jsonConfig.setJsonPropertyFilter(new JsonConvertPropertyFilter());
//结果转换为json字符串
String str = "";
//结果集能实例化为List
if(object instanceof List){
JSONArray jsonArray = JSONArray.fromObject(object, jsonConfig);
str = jsonArray.toString();
}else if(object instanceof String){
str = (String) object;
}else if(object instanceof Number){
str = object.toString();
}
else{
JSONObject jsonObject = JSONObject.fromObject(object, jsonConfig);
str = jsonObject.toString();
}
pWriter.print(str);
pWriter.flush();
pWriter.close();
}

转载于:https://www.cnblogs.com/maohuidong/p/7992510.html

你可能感兴趣的文章
css犯错的地方
查看>>
青蛙跳台阶
查看>>
Linux在x86-64下的虚拟内存布局
查看>>
YII框架表单组件
查看>>
SpringCloud实战8-Bus消息总线
查看>>
了解SSH加密和连接过程
查看>>
Java 泛型
查看>>
Editext的转化
查看>>
.NET的URL怎么静态化
查看>>
day06:shell脚本介绍 | shell脚本结构 | 执行data命令用法 | shell脚本中变量
查看>>
Centos7:timedatectl命令
查看>>
LeetCode:Fizz Buzz - Fizz Buzz 游戏
查看>>
如何在Shell中判断一个变量是否为整数
查看>>
juqery验证中文
查看>>
Linux OS Service 'ntpd' (文档 ID 551704.1)
查看>>
Jquery Validate 使用手册
查看>>
课堂录制的FTP配置
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
常见算法的记录
查看>>