日期:2014-05-17  浏览次数:20715 次

hibernate下,json序列化报异常堆空间不足
通过ajax请求action,hibernate采用懒加载(不立即加载),查出的数据在json序列化时,懒加载是挡不住的,,,使得json序列化的数据过多,报异常堆不足,,现在建一个pojo,用没用映射的实体类去封装数据,json序列化现在建的pojo能够搞定问题,,,但是,我不想通过这个方法搞定,由于学习ajax时间不长,对json的插件不是很熟,我该怎么操作json的插件来搞定上面的问题,让json序列化时只序列化我想要的。。。求教!
ajax json

------解决方案--------------------
序列化bean成JSON返回给客户端时,里面很多数据是不需要的.可以通过JSON过滤来实现.我们真正要返回的属性值.


/**
 * Json配置按类对象映射属性过滤器.
 *
 * @author MaYichao
 * @since 1.0
 */
public class ClassMappingPropertyFilter extends MappingPropertyFilter {

    @Override
    protected boolean keyMatches(Object key, Object source, String name, Object value) {
        Class c = (Class) key;
        return c.isInstance(source);
    }

    @Override
    public boolean apply(Object source, String name, Object value) {
//        if (name.equals("imagePath")) {
//            return true;
//        }
        if (value == null 
------解决方案--------------------
 value instanceof JSONNull) {
            return true;
        }

        return super.apply(source, name, value);
    }
}


/**
 * Json配置包含属性过滤器.
 *
 * @author MaYichao
 * @since 1.0
 */
public class IncludePropertyFilter implements PropertyFilter {

    /**
     * 需要包含的属性列表.
     */
    private List<String> properties = null;