Map<String ,Object> map=new HashMap<String ,Object>();
if(order!=null){
order.setGoodList(null);
order.setOdate(null);
}
if(goodList!=null){
for(Goods g:goodList){
g.setOrderList(null);
}
}
map.put("order", order);
map.put("goodList", goodList);
System.out.println(order.getOid());
System.out.println(order.toString());
JSONObject json = JSONObject.fromObject(map);
response.setCharacterEncoding("utf-8");
response.getWriter().write(json.toString());
上边是解决死循环的一种方法,当然jackson是处理的最好办法!
出现死循环的表象是:无法执行到fromObject的下一行;
解决办法就是:
可能是死循环或者缺少jar包(json需要六个jar包)。如果是死循环,就将导致死循环的对象(一般是List类型或Set类型的对象)设置为null。
另外,fromObject方法对日期类型的数据的处理也比较弱,可以注册一个日期处理器,或者将日期设置为null。
再另外,MyEclipse为实体类的生成的toString方法有可能导致死循环,原因与fromObject方法类似。这里就不详细说了!
今天就到这里!!!