title: Don't understand how to use JSON.NET with ASP.NET Core WebAPI
body: <p>I've completed my first ASP.NET Core Web API and I'd like to try my hand at manually serializing/deserializing JSON via the JSON.NET library. In the JSON.NET documentation they give the following simple manual serialization example:</p>
  
  <pre><code>public static string ToJson(this Person p)
  {
      StringWriter sw = new StringWriter();
      JsonTextWriter writer = new JsonTextWriter(sw);
  
      writer.WriteStartObject();
  
      // "name" : "Jerry"
      writer.WritePropertyName("name");
      writer.WriteValue(p.Name);
  
      // "likes": ["Comedy", "Superman"]
      writer.WritePropertyName("likes");
      writer.WriteStartArray();
      foreach (string like in p.Likes)
      {
          writer.WriteValue(like);
      }
      writer.WriteEndArray();
  
      writer.WriteEndObject();
  
      return sw.ToString();
  </code></pre>
  
  <p>}</p>
  
  <p>What's lacking for a beginner such as myself is how to use this string. For example, consider the following:</p>
  
  <pre><code>[HttpGet("/api/data")
  [Produces("application/json")]
  public IActionResult GetData()
  {
      return Ok(new Byte[SomeBigInt]);
  }
  </code></pre>
  
  <p>In the above code I don't really know where ASP.NET Core serializes the array to JSON...I'm assuming it happens somewhere under the hood. If I were to manually serialize (using the JSON.NET example) some big Byte array, what do I do with the resultant string? Is it just "return Ok(myJsonString);"? Won't the built-in serializer - not knowing that it is already the result of a serialization operation- serialize it again? </p>