>  기사  >  웹 프론트엔드  >  json-lib가 나타납니다. 계층 구조에 주기가 있습니다.solution_json

json-lib가 나타납니다. 계층 구조에 주기가 있습니다.solution_json

WBOY
WBOY원래의
2016-05-16 18:34:001094검색

해결 방법

1. 루프를 발생시키는 필드를 필터링하도록 JSON-LIB를 설정합니다.

Java 코드

코드 복사 코드는 다음과 같습니다.

JsonConfig config = new JsonConfig();
config.setIgnoreDefaultExcludes(false);
config.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT)
config.registerJsonValueProcessor(Date.class,new DateJsonValueProcessor("yyyy-MM-dd" )); //프로세서 레지스터 날짜
config.setExcludes(new String[]{//이 배열을 설정하고 필터링할 필드를 지정하기만 하면 됩니다.
"consignee",
"contract",
"coalInfo",
"coalType",
"startStation",
"balanceMan",
"endStation"
})
String tempStr = "{"TotalRecords":" total.toString( ) ","Datas":" JSONSerializer.toJSON(list,config).toString() "}"
out.print(tempStr)
JsonConfig config = new JsonConfig(); 🎜>config.setIgnoreDefaultExcludes(false);
config.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT);
config.registerJsonValueProcessor(Date.class,new DateJsonValueProcessor("yyyy-MM-dd"));
config .setExcludes(new String[]{//이 배열을 설정하고 필터링할 필드를 지정하기만 하면 됩니다. "consignee", "contract", "coalInfo", "coalType", "startStation", "balanceMan", " endStation" }); String tempStr = "{"TotalRecords":" total.toString() ","Datas":" JSONSerializer.toJSON(list,config).toString() "}"; out.print(tempStr);

2. JSON-LIB의 setCycleDetectionStrategy 속성을 설정하여 자체적으로 주기를 처리하도록 하면 문제가 발생하지 않습니다. 그러나 데이터가 너무 복잡하면 데이터 오버플로가 발생하거나 효율성이 저하됩니다.
Java 코드
[code]
JsonConfig config = new JsonConfig();
config.setIgnoreDefaultExcludes(false);
config.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT)
config.registerJsonValueProcessor (Date.class,new DateJsonValueProcessor("yyyy-MM-dd")); //날짜 프로세서 레지스터
String tempStr = "{"TotalRecords":" total.toString() ","Datas":" JSONSerializer. toJSON(list,config).toString() "}"
out.print(tempStr)

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.