Ist es notwendig, @JsonIgnoreProperties auf alle nicht-JSON-Klassen in Spring JPA-domain?
ich habe zum Beispiel 20 entity-Klassen in der aktuellen Spring-Anwendung, nur braucht man, um anzeigen zu JSON-Objekt, so sind hier zwei Fragen:
-
Ist es notwendig, um Platz
@JsonIgnoreProperties(ignoreUnknown=true)
alle anderen Klassen? -
Wenn ich wählen
org.codehaus.jackson
für JSON handler, gibt es eine chance, dass jackson gehen durch alle entity-Klassen zu versuchen, ein mapping? Ich habe eineorg.codehaus.jackson.map.JsonMappingException: Infinite recursion (StackOverflowError)
Ausnahme, die ausgelöst, aber das Objekt der Auflistung erwähnt im Protokoll wurde bereits markiert als @JsonIgnore
auch die ganze Klasse ist gekennzeichnet @JsonIgnoreProperties(ignoreUnknown=true)
. Also, was könnte es machen wie oben?
- genießen Sie die stackoverflow-Fehler, die auf stackoverflow.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie versuchen, anzeigen einer Klasse als JSON-Objekt mit Jackson, alle primitive wird in Ordnung sein. Aber jackson wird versuchen, die Karte Objekte, die in das Objekt mappt in JSON-Objekten. Also jede Klasse, die ein Feld, Mitglied der Klasse, die Sie sind-mapping mit JSON wird entweder in der Lage sein müssen, um zugeordnet werden zu einem JSON (und jedes Objekt Felder hat) oder Sie ignorieren müssen diejenigen, die Objekt-Felder in der original-Klasse.
Auch, wenn Sie keine rekursive mappings (wie ein Benutzer hat ein Team, und das Team hat eine Liste der Benutzer), kann eine unendliche Schleife verursachen. Jackson 2 hat einige große Lösungen zu helfen.