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

我们把一个对象或者集合转化成一个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();

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

相关文章

文章浏览阅读2.4k次。最近要优化cesium里的热力图效果,浏览...
文章浏览阅读1.2w次,点赞3次,收藏19次。在 Python中读取 j...
文章浏览阅读1.4k次。首字母缩略词 API 代表应用程序编程接口...
文章浏览阅读802次,点赞10次,收藏10次。解决一个JSON反序列...
文章浏览阅读882次。Unity Json和Xml的序列化和反序列化_uni...