title: After parsing a value an unexpected character was encountered: 6. Path '[0]
body: <p>I am parsing a JSON object from a file using Newtonsoft library (Json.Net). I validated the JSON at <a href="https://jsonlint.com" rel="noreferrer">jsonlint.com</a>, and it's valid. </p>
  
  <p>But when I say:</p>
  
  <pre><code>using (StreamReader sr = new StreamReader(path))
  {
      json = await sr.ReadToEndAsync();
  }
  ContactsCollection = JsonConvert.DeserializeObject&lt;List&lt;Contact&gt;&gt;(json); //error
  </code></pre>
  
  <p>I get an error:</p>
  
  <blockquote>
    <p>After parsing a value an unexpected character was encountered: 6. Path '[0]</p>
  </blockquote>
  
  <p>So I put a breakpoint at <code>json = await sr.ReadToEndAsync();</code> and the JSON value shown is:</p>
  
  <p><code>"\0{\0\"\0F\0i\0r\0s\0t\0N\0a\0m\0e\0\"\0:\0\"\0N\0i\0k\0h\0\"\0,\0\"\0L\0a\0s\0t\0N\0a\0m\0e\0\"\0:\0\"\0A\0N\0S\0\"\0,\0\"\0D\0a\0t\0e\0O\0f\0B\0i\0r\0t\0h\0\"\0:\0\"\01\02\0/\07\0/\01\09\08\09\0 \01\02\0:\00\00\0:\00\00\0 \0A\0M\0\"\0,\0\"\0W\0e\0i\0g\0h\0t\0\"\0:\01\06\08\0.\00\0,\0\"\0H\0e\0i\0g\0h\0t\0\"\0:\01\06\08\0.\00\0,\0\"\0P\0h\0o\0n\0e\0\"\0:\0\"\0(\08\00\05\0)\0 \02\05\01\0-\01\00\01\05\0\"\0}\0]\0"</code></p>
  
  <p>Here's my actual JSON:</p>
  
  <pre><code>[{
    "FirstName":"Nikh",
    "LastName":"ANS",
    "DateOfBirth":"12/7/1989 12:00:00 AM",
    "Weight":168.0,
    "Height":168.0,
    "Phone":"(805) 251-1015"
  }]
  </code></pre>
  
  <p>Here's my Contact class:</p>
  
  <pre><code>public class Contact : INotifyPropertyChanged
  {
      private string _firstName;
      public string FirstName
      {
          get { return _firstName; }
          set
          {
              _firstName = value;
              NotifyPropertyChanged("FirstName");
          }
      }
  
      private string _lastName;
      public string LastName
      {
          get { return _lastName; }
          set
          {
              _lastName = value;
              NotifyPropertyChanged("LastName");
          }
      }
  
      private string _dateOfBirth;
      public string DateOfBirth
      {
          get { return _dateOfBirth; }
          set
          {
              _dateOfBirth = value;
              NotifyPropertyChanged("DateOfBirth");
          }
      }
  
      private double _weight;
      public double Weight
      {
          get { return _weight; }
          set
          {
              _weight = value;
              NotifyPropertyChanged("Weight");
          }
      }
  
      private double _height;
      public double Height
      {
          get { return _height; }
          set
          {
              _height = value;
              NotifyPropertyChanged("Height");
          }
      }
  
      private string _phone;
      public string Phone
      {
          get { return _phone; }
          set
          {
              _phone = value;
              NotifyPropertyChanged("Phone");
          }
      }
  
      public event PropertyChangedEventHandler PropertyChanged;
      private void NotifyPropertyChanged(String info)
      {
          if (PropertyChanged != null)
          {
              PropertyChanged(this, new PropertyChangedEventArgs(info));
          }
      }
  }
  </code></pre>
  
  <p>Does anyone know what might be going wrong?</p>