title: Fresh ASP.NET Core API returns empty JSON objects
body: <p>I have made a .NET Core Web API project to test it out. </p>
  
  <p>My problem is, that the API returns an empty JSON object, when I request the endpoint, which is located at "/api/cars/123" for instance. This happens no matter what kind of object I put in, unless it's any primitive datatype, or an array thereof. The response is always:</p>
  
  <pre><code>{}
  </code></pre>
  
  <p>The configuration of the application is completely default, on a fresh Visual Studio 2017 installation.</p>
  
  <p>I have the following classes:</p>
  
  <p><strong>Car.cs</strong></p>
  
  <pre><code>namespace Ex6.Entities
  {
      public class Car
      {
          private int Id { get; set; }
          private string Make { get; set; }
          private string Model { get; set; }
  
          public Car(int Id, string Make, string Model)
          {
              this.Id = Id;
              this.Make = Make;
              this.Model = Model;
          }
      }
  }
  </code></pre>
  
  <p><strong>CarsController.cs:</strong></p>
  
  <pre><code>using Microsoft.AspNetCore.Mvc;
  using Ex6.Entities;
  
  namespace Ex6.Controllers
  {
      [Route("api/[controller]")]
      public class CarsController : Controller
      {
  
          [HttpGet("{id}")]
          public JsonResult GetCar(int id)
          {
              return Json(new Car(1, "Toyota", "Aygo" ));
          }
  
      }
  }
  </code></pre>
  
  <p>Am I missing something?</p>