What is the problem of circular references in JSON?
This problem occurs when you have entities that are interdependent. For example, a Book entity that contains a single or a collection of authors. The Author entity contains also a single or a collection of books. It's as A -> B -> A. Because JSON, like XML, is tree based, it can't deal with that and will throw an exception.
I faced the problem of circular reference when I started using JSON. I searched the web, there were a lot of solutions for that. But they are not accepted in many cases. Because you will have to change a lot in your Models by adding annotations. Some other solutions will make your application slower, as they suggest to delete the virtual
keyword used for lazy loading.
The solution
What I suggest is to just remove the circular references, but how? You just set a single or collection of the entity Book
in the entity Author
. But you set the single or collection of the entity Author
within the Book
to Null
. Then you will have (A -> B -> Null), so there are no more circular references!