title: What is the difference between PreserveReferencesHandling and ReferenceLoopHandling in Json.Net?
body: <p>I am looking at one WebAPI application sample that has this coded:</p>
  
  <pre><code>json.SerializerSettings.PreserveReferencesHandling 
     = Newtonsoft.Json.PreserveReferencesHandling.Objects;
  </code></pre>
  
  <p>and another with this coded:</p>
  
  <pre><code>json.SerializerSettings.ReferenceLoopHandling 
     = Newtonsoft.Json.ReferenceLoopHandling.Ignore;
  </code></pre>
  
  <p>Neither explain why each is chosen. I'm very new to WebAPI, so can someone help by explaining to me in simple terms  what the differences are and why I might need to use one over the other. </p>