如何从Azure函数返回JSON [英] How do I return JSON from an Azure Function
问题描述
我正在玩 Azure函数.但是,我觉得我很困惑一些简单的事情.我试图弄清楚如何返回一些基本的JSON.我不确定如何创建JSON并将其返回给我的请求.
I am playing with Azure Functions. However, I feel like I'm stumped on something pretty simple. I'm trying to figure out how to return some basic JSON. I'm not sure how to create some JSON and get it back to my request.
从前,我会创建一个对象,填充其属性,然后对其进行序列化.所以,我开始走这条路:
Once upon a time, I would create an object, populate its properties, and serialize it. So, I started down this path:
#r "Newtonsoft.Json"
using System.Net;
public static async Task<HttpResponseMessage> Run(HttpRequestMessage req, TraceWriter log)
{
log.Info($"Running Function");
try {
log.Info($"Function ran");
var myJSON = GetJson();
// I want myJSON to look like:
// {
// firstName:'John',
// lastName: 'Doe',
// orders: [
// { id:1, description:'...' },
// ...
// ]
// }
return ?;
} catch (Exception ex) {
// TODO: Return/log exception
return null;
}
}
public static ? GetJson()
{
var person = new Person();
person.FirstName = "John";
person.LastName = "Doe";
person.Orders = new List<Order>();
person.Orders.Add(new Order() { Id=1, Description="..." });
?
}
public class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
public List<Order> Orders { get; set; }
}
public class Order
{
public int Id { get; set; }
public string Description { get; set; }
}
但是,我现在完全陷入了序列化和返回过程.我想我已经习惯了在ASP.NET MVC中返回JSON,而这一切都是一个动作
However, I'm totally stuck on the serialization and return process now.I guess I'm used to returning JSON in ASP.NET MVC where everything is an Action
推荐答案
下面是Azure函数返回格式正确的JSON对象而不是XML的完整示例:
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"
}
这篇关于如何从Azure函数返回JSON的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!