title: Unexpected character encountered while parsing value: {
body: <p>I am trying to parse some JSON with <code>Newtonsoft.JSON.JsonConvert.DeserializeObject</code> - in fact the JSON was also generated by Newtonsoft from the same classes I am trying to deserialize into, and is definitely valid.</p>
  
  <p>But it is giving me the exception: <code>Newtonsoft.Json.JsonReaderException : Unexpected character encountered while parsing value: {.</code></p>
  
  <p>I've made a very simplified example to show the problem.</p>
  
  <p>Here is the JSON:</p>
  
  <pre><code>{
    "address": {
      "country": {
        "name": "UK"
      }
    }
  }
  </code></pre>
  
  <p>Here is a simplified model which still shows the problem:</p>
  
  <pre class="lang-cs prettyprint-override"><code>public class Person
  {
      public Address Address;
  }
  
  public class Address
  {
      public Country Country;
  
      public Address(string country)
      {
      }
  }
  
  public class Country
  {
      public string Name;
  }
  </code></pre>
  
  <p>Here is the code which fails:</p>
  
  <pre class="lang-cs prettyprint-override"><code>// Fails with Newtonsoft.Json.JsonReaderException : "Unexpected character encountered
  // while parsing value: {. Path 'address.country', line 3, position 16."
  Person item = JsonConvert.DeserializeObject&lt;Person&gt;(json);
  </code></pre>
  
  <hr>
  
  <p>I have checked, and this is not the same problem as <a href="https://stackoverflow.com/q/53562566">C# - Unexpected character encountered while parsing value: {. Path &#39;[0].Statistics</a> or <a href="https://stackoverflow.com/q/51925160">Unexpected character encountered while parsing API response</a> . I have now worked out the issue (see my answer below), and it is NOT the same problem or solution as either of those two.</p>