JSON은 Hibernate 솔리드 클래스 넷을 처리합니다.sf.json.JSONException: There is a cycle in the hierarchy 예외
이 오류를 처리하기 전에 일반적인 JSON 처리 데이터 예시를 보십시오
TProcessInfoDAO dao = new TProcessInfoDAO();
List<TProcessInfo> orgData = dao.findAll();
JSONArray array=JSONArray.fromObject(orgData);
String json=array.toString();
System.out.println(json);
이러한 처리 방식에서 TprocessInfoDAO 클래스의 모든 속성은 일반 속성이어야 하며 인용 대상에 따라 포함되지 않습니다
인용 대상을 포함할 때 일반적으로 인용 속성을 필터링해야 합니다. 그러면 JSON 처리가 통과할 수 있습니다. 이것은 인용 대상을 출력하지 않습니다.
TProcessInfoDAO dao = new TProcessInfoDAO();
List<TProcessInfo> orgData = dao.findAll();
JsonConfig config = new JsonConfig();
config.setJsonPropertyFilter(new PropertyFilter() {
public boolean apply(Object source, String name, Object value) {
//
if (name.equals("TProcessInfos") || name.equals("TProcessInfo")) {
return true;
} else {
return false;
}
}
});
// ExtHelper JSONConfig
JSONArray JsonArr=JSONArray.fromObject(orgData, config);
String jsonstr=JsonArr.toString();
인용 대상을 출력하는 처리 방식도 있다
JSON-LIB의 setcycleDetectionStrategy 속성을 설정하면 순환을 스스로 처리하기 쉬우나 데이터가 너무 복잡하면 데이터가 넘치거나 효율이 떨어진다.
TProcessInfoDAO dao = new TProcessInfoDAO();
List<TProcessInfo> orgData = dao.findAll();
JsonConfig config = new JsonConfig();
config.setIgnoreDefaultExcludes(false);
config.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT);
// ExtHelper JSONConfig
JSONArray JsonArr=JSONArray.fromObject(orgData, config);
String jsonstr=JsonArr.toString();
System.out.println(jsonstr);
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Spring에서 DAO가 순환 호출될 때 데이터가 실시간으로 업데이트되지 않는 해결 방법문제를 설명하기 전에 몇 가지 전제 사항을 설명하십시오. Spring의 구성 파일에서 다음과 같은 방식으로 데이터베이스 트랜잭션을 구성했다고 가정하십시오. 현재 UserDao 및 Security Service가 있습...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.