title: .Net Core 3.0 TimeSpan deserialization error - Fixed in .Net 5.0
body: <p>I am using .Net Core 3.0 and have the following string which I need to deserialize with Newtonsoft.Json:</p>
  
  <pre><code>{
      "userId": null,
      "accessToken": null,
      "refreshToken": null,
      "sessionId": null,
      "cookieExpireTimeSpan": {
          "ticks": 0,
          "days": 0,
          "hours": 0,
          "milliseconds": 0,
          "minutes": 0,
          "seconds": 0,
          "totalDays": 0,
          "totalHours": 0,
          "totalMilliseconds": 0,
          "totalMinutes": 0,
          "totalSeconds": 0
      },
      "claims": null,
      "success": false,
      "errors": [
          {
              "code": "Forbidden",
              "description": "Invalid username unknown!"
          }
      ]
  }
  </code></pre>
  
  <p>and bump into the following error:</p>
  
  <pre><code>   Newtonsoft.Json.JsonSerializationException : Cannot deserialize the current JSON object (e.g. {"name":"value"}) into type 'System.TimeSpan' because the type requires a JSON primitive value (e.g. string, number, boolean, null) to deserialize correctly.
  To fix this error either change the JSON to a JSON primitive value (e.g. string, number, boolean, null) 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&lt;T&gt;) 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 'cookieExpireTimeSpan.ticks', line 1, position 103.
  </code></pre>
  
  <p>The error string actually happens when reading the content of HttpResponseMessage:</p>
  
  <pre><code>var httpResponse = await _client.PostAsync("/api/auth/login", new StringContent(JsonConvert.SerializeObject(new API.Models.Request.LoginRequest()), Encoding.UTF8, "application/json"));
  var stringResponse = await httpResponse.Content.ReadAsStringAsync();
  </code></pre>
  
  <p>The server controller method returns:</p>
  
  <pre><code>return new JsonResult(result) { StatusCode = whatever; };
  </code></pre>