How do I return JSON from an Azure Function

Here's a full example of an Azure function returning a properly formatted JSON object instead of XML:

#r "Newtonsoft.Json"
using System.Net;
using Newtonsoft.Json;
using System.Text;

public static async Task<HttpResponseMessage> Run(HttpRequestMessage req, TraceWriter log)
{
    var myObj = new {name = "thomas", location = "Denver"};
    var jsonToReturn = JsonConvert.SerializeObject(myObj);

    return new HttpResponseMessage(HttpStatusCode.OK) {
        Content = new StringContent(jsonToReturn, Encoding.UTF8, "application/json")
    };
}

Navigate to the endpoint in a browser and you will see:

{
  "name": "thomas",
  "location": "Denver"
}

The easiest way is perhaps to

public static async Task<IActionResult> Run(
    [HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "/jsontestapi")] HttpRequest req,
    ILogger log)
{
    return new JsonResult(resultObject);
}

Will set the content-type to application/json and return the json in the response body.


You can take req from

public static async Task<HttpResponseMessage> Run(HttpRequestMessage req, TraceWriter log)

and create the response using

return req.CreateResponse(HttpStatusCode.OK, json, "application/json");

or any of the other overloads in assembly System.Web.Http.

More info on docs.microsoft.com