json:There is a cycle in the hierarchy!

在使用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  
} 

 

posted @ 2015-07-22 16:28  243573295  阅读(380)  评论(0编辑  收藏  举报