如何仅从 Azure Functions (dotnet5) 返回 JSON

问题描述

我在 dotnet5 中有一组 HttpTrigger Azure 函数,我想从这些 Azure 函数返回 JSON。我正在使用 return new OkObjectResult(myObject) 但这并没有提供 JSON,而是 JSON 位于返回的 JSON 的“Value”元素中 即结果看起来有点像

{
  "Value": {
    "MyValueOne": true,"MyValueTwo": 8
  },"Formatters": [],"ContentTypes": [],"DeclaredType": null,"StatusCode": 200
}

与预期相反

{
    "MyValueOne": true,"MyValueTwo": 8
}

我已经使用不同的返回对象走了几条路,但它们似乎总是有这些额外的值,而我想要返回的 JSON 通常包含在其他 JSON 中的值或内容中,例如: JsonResult(myObject) 或 ContentResult() { Content = serialisedVersionOfMyObject }

我什至尝试了 HttpResponseMessage 路径;但是遇到了 HttpTrigger 和 Tast 预期返回的问题

我觉得我错过了一些简单的东西;从 Azure 函数返回“只是 json”的预期/期望/直接方式是什么?

解决方法

Azure 函数 .net 5 返回 HttpResponseData 作为 Http 触发函数的输出。更多信息here

文档中的文字:

HTTP 触发器将传入的 HTTP 请求消息转换为传递给函数的 HttpRequestData 对象。此对象提供来自请求的数据,包括标题、Cookie、身份、URL 和可选的消息正文。此对象是 HTTP 请求对象的表示,而不是请求本身。

同样,该函数返回一个 HttpResponseData 对象,该对象提供用于创建 HTTP 响应的数据,包括消息 StatusCode、Headers 和可选的消息正文。

enter image description here