Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用JSON循环_Java_Json - Fatal编程技术网

Java 使用JSON循环

Java 使用JSON循环,java,json,Java,Json,下午好 我有一个servlet,希望在其中转换Json列表 我使用以下代码 List<Reunion> lista_reuniones = facadeReunion.getServidoresTareas(); JSONArray mJSONArray = JSONArray.fromObject(lista_reuniones); List lista_reuniones=facadeReunion.getServidoresTareas(); JSONArr

下午好

我有一个servlet,希望在其中转换Json列表

我使用以下代码

List<Reunion> lista_reuniones = facadeReunion.getServidoresTareas();

        JSONArray mJSONArray = JSONArray.fromObject(lista_reuniones);
List lista_reuniones=facadeReunion.getServidoresTareas();
JSONArray mJSONArray=JSONArray.fromObject(lista_Reunions);
在lista_reunion中,我存储reunion类型的对象

当我运行代码时,出现以下错误:

严重:Servlet.service()para Servlet reunionServlet lanzón net.sf.json.JSONException:层次结构中有一个循环! 位于net.sf.json.util.CycleDetectionStrategy$StrictCycleDetectionStrategy.HandlerRepeatedReferenceAsObject(CycleDetectionStrategy.java:97) 位于net.sf.json.JSONObject.\u fromBean(JSONObject.java:857) 位于net.sf.json.JSONObject.fromObject(JSONObject.java:192) 位于net.sf.json.JSONObject.\u processValue(JSONObject.java:2774) 位于net.sf.json.JSONObject.\u setInternal(JSONObject.java:2798) 位于net.sf.json.JSONObject.setValue(JSONObject.java:1507) 位于net.sf.json.JSONObject.\u fromBean(JSONObject.java:940) 位于net.sf.json.JSONObject.fromObject(JSONObject.java:192) net.sf.json.JSONArray.\u processValue(JSONArray.java:2557) 位于net.sf.json.JSONArray.processValue(JSONArray.java:2588) 位于net.sf.json.JSONArray.addValue(JSONArray.java:2575) 位于net.sf.json.JSONArray.\u fromCollection(JSONArray.java:1082) 位于net.sf.json.JSONArray.fromObject(JSONArray.java:145) net.sf.json.JSONObject.\u processValue(JSONObject.java:2749) 位于net.sf.json.JSONObject.\u setInternal(JSONObject.java:2798) 位于net.sf.json.JSONObject.setValue(JSONObject.java:1507) 位于net.sf.json.JSONObject.\u fromBean(JSONObject.java:940) 位于net.sf.json.JSONObject.fromObject(JSONObject.java:192) 位于net.sf.json.JSONObject.\u processValue(JSONObject.java:2774) 位于net.sf.json.JSONObject.\u setInternal(JSONObject.java:2798) 位于net.sf.json.JSONObject.setValue(JSONObject.java:1507) 位于net.sf.json.JSONObject.\u fromBean(JSONObject.java:940) 位于net.sf.json.JSONObject.fromObject(JSONObject.java:192) 位于net.sf.json.JSONObject.\u processValue(JSONObject.java:2774) 位于net.sf.json.JSONObject.\u setInternal(JSONObject.java:2798) 位于net.sf.json.JSONObject.setValue(JSONObject.java:1507) 位于net.sf.json.JSONObject.\u fromBean(JSONObject.java:940) 位于net.sf.json.JSONObject.fromObject(JSONObject.java:192) 位于net.sf.json.JSONObject.\u processValue(JSONObject.java:2774) 位于net.sf.json.JSONObject.\u setInternal(JSONObject.java:2798) 位于net.sf.json.JSONObject.setValue(JSONObject.java:1507) 位于net.sf.json.JSONObject.\u fromBean(JSONObject.java:940) 位于net.sf.json.JSONObject.fromObject(JSONObject.java:192) net.sf.json.JSONArray.\u processValue(JSONArray.java:2557) 位于net.sf.json.JSONArray.processValue(JSONArray.java:2588) 位于net.sf.json.JSONArray.addValue(JSONArray.java:2575) 位于net.sf.json.JSONArray.\u fromCollection(JSONArray.java:1082) 位于net.sf.json.JSONArray.fromObject(JSONArray.java:145) 位于net.sf.json.JSONArray.fromObject(JSONArray.java:127) 位于servlet.ReunionServlet.doPost(ReunionServlet.java:176) 位于javax.servlet.http.HttpServlet.service(HttpServlet.java:641) 位于javax.servlet.http.HttpServlet.service(HttpServlet.java:722) 位于org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304) 位于org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 位于org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240) 位于org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164) 位于org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462) 位于org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164) 位于org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100) 位于org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:562) 位于org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) 位于org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:395) 位于org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:250) 位于org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:188) 位于org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:166) 位于org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302) 位于java.util.concurrent.ThreadPoolExecutor.runWorker(未知源) 位于java.util.concurrent.ThreadPoolExecutor$Worker.run(未知源) 位于java.lang.Thread.run(未知源)

你知道问题出在哪里吗?如果有帮助,数据库图如下所示:


组织团聚是一对多的关系。如果是双向关系,则可能形成循环引用,从而导致此类异常

我在使用Jackson序列化我的bean时遇到了同样的问题。当时我在项目中使用Hibernate


通过使用Jackson进行序列化并使用@JsonManagedReference和@JsonBackReference注释,可以避免此问题。

组织与团聚是一对多关系。如果是双向关系,则可能形成循环引用,从而导致此类异常

我在使用Jackson序列化我的bean时遇到了同样的问题。当时我在项目中使用Hibernate


您可以通过使用Jackson进行序列化并使用@JsonManagedReference和@JsonBackReference注释来避免此问题。

在我的例子中,出现此问题是因为我的实体中的某些属性是惰性的(JPA)

为了解决这个问题,我将一个jsonConfig包含在这个指令中:

JsonConfig jsonConfig = new JsonConfig();
jsonConfig.setExcludes(new String[]{"files", "createdBy", "lastUpdatedBy"});
jsonConfig.setIgnoreDefaultExcludes(false);
jsonConfig.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT);

JSONObject jsonObject = JSONObject.fromObject(obj, config);
这对我来说很有效