jq + json + hibernate 遇到的一些问题

今天在运用jq 的 ajax技术 从servlet请求来json数据时遇到的一些问题:

在Servlet类进行数据转化代码如下:

JSONArray jsonArray = JSONArray.fromObject(schools);
response.getWriter().println(jsonArray);
按照以上代码运行 出现了 异常.


原因是运用net.sf.json.*时,在web应用中缺少了相应的包.

在tomcat lib 下一查. 发现缺少 ezmorph-1.0.6.jar 包.


导入之后.继续运行程序,出现了一系列hibernate  lazy懒加载的错误.

原因是我的School 对象 与 StudentManger、Student 皆有相互关联关系,且默认lazy不为false.


于是我傻呵呵地将一个一个School中的对象在相应的hbm.xml中相应映射关系的lazy设置为false.

又发现了一个问题. StudentManger与Student又与其它类有着关联,又回到了刚刚阐述的问题.

那么是否为了得到JSON对象,我就得加载School对象时,同时加载那些我不关心的属性(如:students、studentMangers)呢? 在网上一查,发现了一系列解决方法.

以下解决方法我认为最为合适.


	JsonConfig jsonConfig = new JsonConfig();
	jsonConfig.setIgnoreDefaultExcludes(false);
	jsonConfig.setExcludes(new String[]{"schoolManagers","students"});//需要排除的属性的名称
		
	JSONArray jsonArray = JSONArray.fromObject(schools,jsonConfig);

	response.setCharacterEncoding("utf-8");
	response.getWriter().println(jsonArray);




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值