Click here to Skip to main content
Click here to Skip to main content

Solving the problem of Circular References in JSON

, 12 Mar 2013 CPOL
Rate this:
Please Sign up or sign in to vote.
The problem of circular reference is a common problem in JSON.

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!

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

Share

About the Author

Houssem_Dellai
Software Developer Microsoft
Tunisia Tunisia
I'm a Software Engineer and MVP (Client Development). I like writing articles and developing open source software in C#, Windows Phone and Windows 8 applications droidcon.tn/speakers.php.
http://houssemdellai.net
Follow on   Twitter   Google+

Comments and Discussions

 
QuestionI agree with the previous comment PinprofessionalAssil22-Oct-14 1:27 
GeneralMy vote of 1 Pinmemberashved12-Mar-13 16:15 
GeneralRe: My vote of 1 PinmemberHoussem_Dellai13-Mar-13 0:03 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

| Advertise | Privacy | Terms of Use | Mobile
Web02 | 2.8.1411022.1 | Last Updated 13 Mar 2013
Article Copyright 2013 by Houssem_Dellai
Everything else Copyright © CodeProject, 1999-2014
Layout: fixed | fluid