1 package com.wzw.jsonConfig; 2 3 /** 4 * @ProjectName: Zwen_Demo 5 * @Package: com.wzw.jsonConfig 6 * @ClassName: User 7 * @Author: WangZunWen 8 * @Description: ${description} 9 * @Date: 2020/5/4 17:02 10 */ 11 public class User { 12 private String username; 13 private Integer age; 14 private User user = this; 15 16 //get 17 //set 18 19 } 20 //错误展示 21 public class Test1 { 22 public static void main(String[] args) { 23 User user = new User(); 24 user.setUsername("userName"); 25 user.setAge(20); 26 JsonConfig jsonConfig = new JsonConfig(); 27 JSONObject json = JSONObject.fromObject(user); 28 System.out.println(json); 29 30 } 31 } 32 /* 33 Exception in thread "main" net.sf.json.JSONException: There is a cycle in the hierarchy! 34 at net.sf.json.util.CycleDetectionStrategy$StrictCycleDetectionStrategy.handleRepeatedReferenceAsObject(CycleDetectionStrategy.java:97) 35 at net.sf.json.JSONObject._fromBean(JSONObject.java:859) 36 at net.sf.json.JSONObject.fromObject(JSONObject.java:194) 37 at net.sf.json.JSONObject._processValue(JSONObject.java:2793) 38 at net.sf.json.JSONObject._setInternal(JSONObject.java:2817) 39 at net.sf.json.JSONObject.setValue(JSONObject.java:1527) 40 at net.sf.json.JSONObject._fromBean(JSONObject.java:946) 41 at net.sf.json.JSONObject.fromObject(JSONObject.java:194) 42 at net.sf.json.JSONObject.fromObject(JSONObject.java:156) 43 at com.wzw.jsonConfig.Test1.main(Test1.java:22) 44 45 Process finished with exit code 1 46 */ 47 48 49 50 51 52 public class Test2 { 53 public static void main(String[] args) { 54 User user = new User(); 55 user.setUsername("userName"); 56 user.setAge(20); 57 JsonConfig jsonConfig = new JsonConfig(); 58 jsonConfig.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT); 59 JSONObject json = JSONObject.fromObject(user,jsonConfig); 60 System.out.println(json); 61 62 } 63 } 64 /* 65 {"user":null,"age":20,"username":"userName"} 66 67 Process finished with exit code 0 68 */