当前位置: 代码迷 >> Java Web开发 >> spring mvc3 使用jackson返回json时候无限循环
  详细解决方案

spring mvc3 使用jackson返回json时候无限循环

热度:6963   发布时间:2013-02-25 21:09:17.0
spring mvc3 应用jackson返回json时候无限循环
controller局部代码如下:
[code=Java][/code]
@RequestMapping(method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
@ResponseBody
public List<Category> list() {
List<Category> categories = mobilePublishService.getCategorys();
return categories;
}

categories.size()=9
其中category有属性:
[code=Java][/code]
  private String name;
private String description;
private String tableName;
private int level;
private boolean hasSons;
private List<Category> sons=new ArrayList<Category>(0);
private Category parent;
此时的categories中例如有:根节点 子节点1 子节点2 子节点3。。。。子节点8 等9个值
当返回json时候,jackson在将list转换为json时,会无限循环输出根节点(即第一条数据)
个人认为是由于category中有属性 sons 以及 parent 他们都是 category
当读到儿子的category时候 儿子中有属性 parent的category 会回到根节点(第一条数据)继续读
如此导致无限循环
想知道有什么方法可以避免无限循环,达到正常输出效果,不会无限循环

------解决方案--------------------------------------------------------
你可以考虑改你的实体类设计了。最好各司其职,不要一味的封装到底
  相关解决方案