我如何 return JSON 仅来自 Azure Functions (dotnet5)
How do I return JSON only from Azure Functions (dotnet5)
我在 dotnet5 中有一组 HttpTrigger Azure Functions,我想从这些 Azure Functions return JSON。我正在使用 return new OkObjectResult(myObject)
但它没有提供 JSON 而是 JSON 在 JSON returned 的“值”元素中
即结果看起来有点像
{
"Value": {
"MyValueOne": true,
"MyValueTwo": 8
},
"Formatters": [],
"ContentTypes": [],
"DeclaredType": null,
"StatusCode": 200
}
与预期相反
{
"MyValueOne": true,
"MyValueTwo": 8
}
我已经用不同的 return 对象走了几条路,但它们似乎总是有这些额外的值,而且 JSON 我想要 returned 通常被包裹起来在其他 JSON 的值或内容中,例如:
JsonResult(我的对象)或
ContentResult() { Content = serialisedVersionOfMyObject }
我什至尝试了 HttpResponseMessage 路径;但是 运行 遇到了 HttpTrigger 的麻烦,预计 return 的 Tast
我觉得我缺少一些简单的东西;从 Azure Functions returning "just json" 的预期/期望/直接方式是什么?
Azure 函数 .net 5 returns HttpResponseData 作为 Http 触发函数的输出。更多信息 here.
文档中的文本:
HTTP 触发器将传入的 HTTP 请求消息转换为传递给函数的 HttpRequestData
object。此 object 提供来自请求的数据,包括 Headers、Cookie、身份、URL 和可选消息 Body。此 object 表示 HTTP 请求 object 而不是请求本身。
同样,函数 returns 和 HttpResponseData
object 提供用于创建 HTTP 响应的数据,包括消息 StatusCode、Headers 和可选的消息Body.
如果您需要return一个对象(序列化),请尝试这样做:
您的 Azure Function 中将有一个参数,类型和名称为 (HttpRequestData req),现在您需要使用它来创建您的响应:
var response = req.CreateResponse(HttpStatusCode.OK);
await response.WriteAsJsonAsync(itemData); <-- itemData = your object
return response;
我在 dotnet5 中有一组 HttpTrigger Azure Functions,我想从这些 Azure Functions return JSON。我正在使用 return new OkObjectResult(myObject)
但它没有提供 JSON 而是 JSON 在 JSON returned 的“值”元素中
即结果看起来有点像
{
"Value": {
"MyValueOne": true,
"MyValueTwo": 8
},
"Formatters": [],
"ContentTypes": [],
"DeclaredType": null,
"StatusCode": 200
}
与预期相反
{
"MyValueOne": true,
"MyValueTwo": 8
}
我已经用不同的 return 对象走了几条路,但它们似乎总是有这些额外的值,而且 JSON 我想要 returned 通常被包裹起来在其他 JSON 的值或内容中,例如: JsonResult(我的对象)或 ContentResult() { Content = serialisedVersionOfMyObject }
我什至尝试了 HttpResponseMessage 路径;但是 运行 遇到了 HttpTrigger 的麻烦,预计 return 的 Tast
我觉得我缺少一些简单的东西;从 Azure Functions returning "just json" 的预期/期望/直接方式是什么?
Azure 函数 .net 5 returns HttpResponseData 作为 Http 触发函数的输出。更多信息 here.
文档中的文本:
HTTP 触发器将传入的 HTTP 请求消息转换为传递给函数的 HttpRequestData
object。此 object 提供来自请求的数据,包括 Headers、Cookie、身份、URL 和可选消息 Body。此 object 表示 HTTP 请求 object 而不是请求本身。
同样,函数 returns 和 HttpResponseData
object 提供用于创建 HTTP 响应的数据,包括消息 StatusCode、Headers 和可选的消息Body.
如果您需要return一个对象(序列化),请尝试这样做:
您的 Azure Function 中将有一个参数,类型和名称为 (HttpRequestData req),现在您需要使用它来创建您的响应:
var response = req.CreateResponse(HttpStatusCode.OK);
await response.WriteAsJsonAsync(itemData); <-- itemData = your object
return response;