title: JsonConvert.DeserializeObject Error reading object reference '1'
body: <p>I am trying to deserialize an object in a Web Api from an object posted by angular. I am receiving an error: <strong>Error reading object reference '1'. Path 'Developers[0].DeveloperId', line 20, position 21</strong>
  My Json object is (which has been validated as valid JSON):</p>
  
  <pre><code>{
    "Id": 0,
    "Name": "Name",
    "OwnerId": 1,
    "Description": "Description",
    "Note": "My Notes",
    "Stakeholders": [
      {
        "$id": "1",
        "StakeholderId": 1,
        "Name": "Mary",
        "DateModified": "2018-02-21T12:28:15.023",
        "DateCreated": "2018-02-21T12:28:15.023",
        "$$hashKey": "object:3"
      }
    ],
    "Developers": [
      {
        "$id": "1",
        "DeveloperId": 1,
        "DeveloperName": "Joseph",
        "DateModified": "2018-02-21T12:28:26.07",
        "DateCreated": "2018-02-21T12:28:26.07",
        "$$hashKey": "object:4"
      }
    ]
  }
  </code></pre>
  
  <p>I am trying to deserialize with:</p>
  
  <pre><code>var app = JsonConvert.DeserializeObject&lt;Application&gt;(request.ToString(), new JsonSerializerSettings
              {
                  NullValueHandling = NullValueHandling.Ignore
              });
  </code></pre>
  
  <p>The developer class (which is similar to Stakeholder class)</p>
  
  <pre><code>public class Developer : IModificationHistory
  {
      public int DeveloperId { get; set; }
      [Required]
      public string DeveloperName { get; set; }
      [JsonIgnore]
      public virtual List&lt;Application&gt; Applications { get; set; }
      public DateTime DateModified { get; set; }
      public DateTime DateCreated { get; set; }
  }
  </code></pre>
  
  <p>The application class is simply:</p>
  
  <pre><code>public class Application
  {
  
      public int Id { get; set; }
      [Required]
      public string Name { get; set; }
      [Required]
      public string Description { get; set; }
      public string Note { get; set; }
  
      public virtual List&lt;Stakeholder&gt; Stakeholders { get; set; }
      public int OwnerId { get; set; }
      public virtual List&lt;Developer&gt; Developers { get; set; }
  
  }
  </code></pre>
  
  <p>The javascript I use to call this post is:</p>
  
  <pre><code>    var data =
      {
          Id: vm.appId,
          Name: vm.applicationName,
          OwnerId: vm.owner.DeveloperId,
          Description: vm.applicationDescription,
          Note: vm.note,
          Stakeholders: vm.selectedStakeholders,
          Developers: vm.selectedDevelopers
  
  };
  
  
      $http.post("/api/Application/Post/", JSON.stringify(data))
  </code></pre>
  
  <p>The Stakeholders List gets filled properly, but the Developers list does not. If I put developers in the list before stakeholders, then developers list gets filled properly and stakeholders does not.  Any suggestions would be greatly appreciated!</p>