There is a cycle in the hierarchy!
我也遇到同样的错误,我找到了方法来解决。记录下来
首页,解释下为什么会报出这样的错误,转成json时,他会把里面的对象分解成基本类型,解析成不能再解析为止,so,由于我们的配置,就很容易出现死循环。我说的不太清楚,我把示例展示出来,大家看看吧。
...
PageSupport pas = new PageSupport();
pas.setItems(list);//list<House>
pas.setTotalPage(totalPage);
pas.setCurrentPage(currentPage);
JSONArray pasJSON = JSONArray.fromObject(pas);//是这里报出了问题
我们在查询list时,要用外链查询,一次性查出,在加个过滤的,让json避免重复循环的解析list
这是位json配置的一个文件方法。可以阻止json解释某个属性,来避免死循环
public JsonConfig json() {
JsonConfig cfg = new JsonConfig();
cfg.setJsonPropertyFilter(new PropertyFilter(){
public boolean apply(Object source, String name, Object value) {
boolean flag;
if(name.equals("streets")) {
flag = true;
} else {
flag = false;
}
System.out.println(flag+"__"+name+"___________");
//这个是我用来测试用的 ,可以看看,json倒地解析了那些内容, true阻止了,false没阻止
return flag;
}
});
return cfg;
}
//如上所说,你就可以使用了,list里的任何想要的内容。 解释的有的乱,希望能给你带来你想要的答案。