How to serialize as Json an object structure with circular references?

13,850

Use the Newtonsoft.Json (which is the default .net json serializer) and set

JsonSerializerSettings settings = new JsonSerializerSettings
{
    PreserveReferencesHandling = PreserveReferencesHandling.Objects
};
var serializer = JsonSerializer.Create(settings);

You can also globally define this variable if you are developing MVC applications...

Share:
13,850
AngryHacker
Author by

AngryHacker

Updated on June 15, 2022

Comments

  • AngryHacker
    AngryHacker almost 2 years

    I have an object structure like this:

    public class Proposal {
        public List<ProposalLine> Lines { get; set; }
        public string Title { get; set; }
    }
    
    public class ProposalLine {
        public Proposal Proposal { get; set; }  // <- Reference to parent object
    }
    

    I try to serialize Proposal as Json, it tells me that there is a circular reference, which is correct.
    Unfortunately, I can't touch the objects, since they are in a referenced DLL from another project - otherwise I'd change them.

    Is there a way to serialize as Json and ignore the circular properties?