解決策
1. ループの原因となるフィールドを除外するように JSON-LIB を設定します。
Java コード
JsonConfig config = new JsonConfig();
config.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT);
config.registerJsonValueProcessor(Date.class,new DateJsonValueProcessor("yyyy-MM-dd") )); //プロセッサーレジスタの日付
config.setExcludes(new String[]{//この配列を設定し、フィルターするフィールドを指定するだけです。
"consignee",
"contract",
"coalInfo",
"coalType",
"startStation",
"balanceMan",
"endStation"
}); 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 コード
[コード]
JsonConfig config = new JsonConfig();
config.setIgnoreDefaultExcludes(false);
config.registerJsonValueProcessor (Date.class,new DateJsonValueProcessor("yyyy-MM-dd")); //日付プロセッサ レジスタ
String tempStr = "{"TotalRecords":" total.toString() ","Datas":" JSONSerializer。 toJSON(list,config).toString() "}";
out.print(tempStr);