标签:
在使用JSONObject.fromObject的时候,出现“There is a cycle in the hierarchy”异常。
意思是出现了死循环,也就是Model之间有循环包含关系;
解决办法:
使用setCycleDetectionStrategy防止自包含
代码:
JsonConfig jsonConfig = new JsonConfig(); jsonConfig.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT); JSONObject json =JSONObject.fromObject(model, jsonConfig); result = json.toString();
依赖的包:
import net.sf.json.JSONArray; import net.sf.json.JSONObject; import net.sf.json.JsonConfig; import net.sf.json.util.CycleDetectionStrategy;
完整实列
/** * 这里测试如果含有自包含的时候需要CycleDetectionStrategy */ public static void testCycleObject() { CycleObject object = new CycleObject(); object.setMemberId("yajuntest"); object.setSex("male"); JsonConfig jsonConfig = new JsonConfig(); jsonConfig.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT); JSONObject json = JSONObject.fromObject(object, jsonConfig); System.out.println(json); } public static void main(String[] args) { JsonTest.testCycleObject(); }
其中 CycleObject.java
public class CycleObject { private String memberId; private String sex; private CycleObject me = this; …… // getters && setters }
json:There is a cycle in the hierarchy!
标签:
原文地址:http://www.cnblogs.com/hwaggLee/p/4667832.html