title: Cannot deserialize the current JSON object (e.g. {"name":"value"}) into type 'System.Collections.Generic.List
body: <p>I have the following code</p>
  
  <pre><code>public async Task&lt;ActionResult&gt; GetExtendedProperties()
          {
              Uri serviceRoot = new Uri(SettingsHelper.AzureAdGraphApiEndPoint);
              var token = AppToken.GetAppToken();
              var adClient = AuthenticationHelper.GetActiveDirectoryClient();
  
              Microsoft.Azure.ActiveDirectory.GraphClient.Application app = (Microsoft.Azure.ActiveDirectory.GraphClient.Application)adClient.Applications.Where(
                  a =&gt; a.AppId == SettingsHelper.ClientId).ExecuteSingleAsync().Result;
              if (app == null)
              {
                  throw new ApplicationException("Unable to get a reference to application in Azure AD.");
              }
  
              string requestUrl = string.Format("https://graph.windows.net/{0}/applications/{1}/extensionProperties?api-version=1.5", SettingsHelper.Tenant, app.ObjectId);
  
              HttpClient hc = new HttpClient();
              hc.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue(
                  "Bearer", token);
  
              HttpResponseMessage hrm = await hc.GetAsync(new Uri(requestUrl));
  
              if (hrm.IsSuccessStatusCode)
              {
                  string jsonresult = await hrm.Content.ReadAsStringAsync();
  
  
                  return View();
              }
              else
              {
                  return View();
              }
          }
  </code></pre>
  
  <p>and it returns this string</p>
  
  <pre><code>{"odata.metadata":"https://graph.windows.net/mysaasapp.onmicrosoft.com/$metadata#directoryObjects/Microsoft.DirectoryServices.ExtensionProperty","value":[{"odata.type":"Microsoft.DirectoryServices.ExtensionProperty","objectType":"ExtensionProperty","objectId":"f751a646-2cc1-4e30-bfc6-a8217c0ce0a3","deletionTimestamp":null,"appDisplayName":"","name":"extension_33e037a7b1aa42ab96936c22d01ca338_Modulos","dataType":"String","isSyncedFromOnPremises":false,"targetObjects":["User"]},{"odata.type":"Microsoft.DirectoryServices.ExtensionProperty","objectType":"ExtensionProperty","objectId":"80aabe1b-b020-41d1-bd2d-cc04af264fe5","deletionTimestamp":null,"appDisplayName":"","name":"extension_33e037a7b1aa42ab96936c22d01ca338_ModulesPerUser","dataType":"String","isSyncedFromOnPremises":false,"targetObjects":["User"]},{"odata.type":"Microsoft.DirectoryServices.ExtensionProperty","objectType":"ExtensionProperty","objectId":"6e3d7592-7a66-4792-b408-891251197868","deletionTimestamp":null,"appDisplayName":"","name":"extension_33e037a7b1aa42ab96936c22d01ca338_Comasdasa3dsdaspInfo","dataType":"String","isSyncedFromOnPremises":false,"targetObjects":["User"]},{"odata.type":"Microsoft.DirectoryServices.ExtensionProperty","objectType":"ExtensionProperty","objectId":"93a26374-4135-4f29-9f24-4154522449ec","deletionTimestamp":null,"appDisplayName":"","name":"extension_33e037a7b1aa42ab96936c22d01ca338_CompInfo","dataType":"String","isSyncedFromOnPremises":false,"targetObjects":["User"]},{"odata.type":"Microsoft.DirectoryServices.ExtensionProperty","objectType":"ExtensionProperty","objectId":"21a8a3d4-f4b4-45b4-8d07-55d450db35f2","deletionTimestamp":null,"appDisplayName":"","name":"extension_33e037a7b1aa42ab96936c22d01ca338_CompanyNameForSaasApp","dataType":"String","isSyncedFromOnPremises":false,"targetObjects":["User"]},{"odata.type":"Microsoft.DirectoryServices.ExtensionProperty","objectType":"ExtensionProperty","objectId":"7b3109e0-8710-4d1a-81c3-2b6a83fb62ee","deletionTimestamp":null,"appDisplayName":"","name":"extension_33e037a7b1aa42ab96936c22d01ca338_Compania","dataType":"String","isSyncedFromOnPremises":false,"targetObjects":["User"]}]}
  </code></pre>
  
  <p>Using json2charp, I created this class:</p>
  
  <pre><code>public class ActiveDirectorySchemaExtension
      {
          public string objectType { get; set; }
          public string objectId { get; set; }
          public object deletionTimestamp { get; set; }
          public string appDisplayName { get; set; }
          public string name { get; set; }
          public string dataType { get; set; }
          public bool isSyncedFromOnPremises { get; set; }
          public List&lt;string&gt; targetObjects { get; set; }
      }
  </code></pre>
  
  <p>How can I convert that string into a List so that I can easy manipulate it on the view?</p>
  
  <p>Update:
  I tried this:</p>
  
  <pre><code> List&lt;ActiveDirectorySchemaExtension&gt; tmp = JsonConvert.DeserializeObject&lt;List&lt;ActiveDirectorySchemaExtension&gt;&gt;(jsonresult);
  </code></pre>
  
  <p>but I got this</p>
  
  <blockquote>
    <p>Cannot deserialize the current JSON object (e.g. {"name":"value"})
    into type
    'System.Collections.Generic.List`1[CapatechSaasApp.Areas.GlobalAdmin.Models.ActiveDirectorySchemaExtension]'
    because the type requires a JSON array (e.g. [1,2,3]) to deserialize
    correctly. To fix this error either change the JSON to a JSON array
    (e.g. [1,2,3]) or change the deserialized type so that it is a normal
    .NET type (e.g. not a primitive type like integer, not a collection
    type like an array or List) that can be deserialized from a JSON
    object. JsonObjectAttribute can also be added to the type to force it
    to deserialize from a JSON object. Path '['odata.metadata']', line 1,
    position 18.</p>
  </blockquote>