我们把一个对象或者集合转化成一个json字符串的时候,他会遍历每一个字段,当你对象A里面有对象B,独享B里面有对象A的时候,这时候转化的时候就会抛出net.sf.json.JSONException: There is a cycle in the hierarchy!这个异常,也就是说白了就是循环了.这时候需要我们写一个过滤的小东西
JsonConfig cfg = new JsonConfig();
cfg.setJsonPropertyFilter(new PropertyFilter()
{
public boolean apply(Object source,String name,Object value) {
if(name.equals("contactGroups")||name.equals("contactGroupPersons")) {
return true;
} else {
return false;
}
}
});
这里就是定义了一个过滤器,过滤掉了contactGroups和contactGroupPersons名称的字段,返回true表示过滤掉这个属性,当然了,这个过滤器自身不会起到任何作用,只有在转化的时候用到才行
JSONArray array = JSONArray.fromObject(entityList,cfg);
这里使用两个参数的方法,第二个参数是一个配置对象,就是我们上面定义的JsonConfig cfg = new JsonConfig();
原文链接:https://www.f2er.com/json/289542.html