Bitte helfen Sie mir, Baumstruktur im JSON-Format zu speichern. Ich habeWie wird der Zirkelverweis in der JSON-Serialisierung aufgelöst?
ERROR 6444 --- [nio-8090-exec-1] o.a.c.c.C.[.[.[/]. [dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Handler processing failed; nested exception is java.lang.StackOverflowError] with root cause
java.lang.StackOverflowError: null
at java.lang.Class.getGenericInterfaces(Class.java:912) ~[na:1.8.0_40]
at com.fasterxml.jackson.databind.type.TypeFactory._doFindSuperInterfaceChain(TypeFactory.java:1260) ~[jackson-databind-2.6.6.jar:2.6.6]
at com.fasterxml.jackson.databind.type.TypeFactory._findSuperInterfaceChain(TypeFactory.java:1254) ~[jackson-databind-2.6.6.jar:2.6.6]
// more stacktrace here...
auf dem folowing Code:
public class CustomASTNode implements ASTNode {
private final CustomNode node; // simple property
private final ASTNodeID id; // simple property
@JsonBackReference
private final ASTNode parent; // circular property!
@JsonManagedReference
private List<ASTNode> children = new ArrayList<>(); // circular property!
// more code
}
public interface ASTNode extends Iterable<ASTNode> { // ?
// more code
}
I verwendet @JsonBackReference
und @JsonManagedReference
Anmerkungen mit Feldern zu beschäftigen, haben aber keine Ideen, wie Rekursion in der Schnittstelle zu lösen. Ist es möglich oder vielleicht ist es notwendig, dieses Snippet neu zu schreiben?
Wenn es ein zirkulärer Verweis, es ist kein Baum. –
@AndyTurner ja, aber ich spreche über Zirkel Verweis in Schnittstellendefinition ('ASTNode erweitert Iterable'), während Baum von 'CustomASTNode' Objekte mit' Eltern- und 'Kinder' Felder –
Nur um klar zu sein, sind Sie Sagen Sie, dass Ihre ASTNode ein Diagramm mit Zyklen bildet? – Pace