解决net.sf.json.JSONException: There is a cycle in the hierarchy!

前端之家收集整理的这篇文章主要介绍了解决net.sf.json.JSONException: There is a cycle in the hierarchy!前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

@H_403_1@ 我们把一个对象或者集合转化成一个json字符串的时候,他会遍历每一个字段,当你对象A里面有对象B,独享B里面有对象A的时候,这时候转化的时候就会抛出net.sf.json.JSONException: There is a cycle in the hierarchy!这个异常,也就是说白了就是循环了.这时候需要我们写一个过滤的小东西

@H_403_1@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;
}

@H_403_1@}

@H_403_1@});

@H_403_1@这里就是定义了一个过滤器,过滤掉了contactGroups和@H_403_1@contactGroupPersons名称的字段,返回true表示过滤掉这个属性,当然了,这个过滤器自身不会起到任何作用,只有在转化的时候用到才行

@H_403_1@JSONArray array = JSONArray.fromObject(entityList,cfg);

@H_403_1@这里使用两个参数的方法,第二个参数是一个配置对象,就是我们上面定义的JsonConfig cfg = new JsonConfig();

@H_403_1@然后我们设置配置对象里面的属性过滤属性,相信大家都是看得懂的了

猜你在找的Json相关文章