7

我有一个 HTTP 侦听器,用于发送 JSON 帖子正文。

{
"recipient":"bob@example.com",
"subject":"this is a test subject",
"body":"this is a test body email"
}

我试图在下一个流程中提取这些单独的参数,但它却出错了!

我希望实现的结果是将“bob@example.com”作为下一步操作的输入

我试过像

"@{triggers().outputs.body.Content.recipient}"

和各种变化,但我怀疑我错过了一些东西!

编辑添加

我目前正在通过 Powershell 发送发布请求,尽管它最终会通过 c#

$a = @"
{"recipient":"bob@example.com","subject":"this is a test subject","body":"this is a test body email"}
"@

Invoke-WebRequest -Uri     https://httplistenerc743421edf234899a1315aa38c6398bc.azurewebsites.net/listen -Method POST -Body $a
4

3 回答 3

13

啊,这个技巧是 HTTP 侦听器主体的输出是一个字符串,因此您需要先将其转换为 JSON,然后才能解析它。有一个 @parse() 命令可以做到这一点。

因此,如果您这样做,它应该可以工作:

@{json(trigger().outputs.body.Content).recipient}

那应该给你收件人。如果这不起作用,请告诉我。

于 2015-09-03T18:02:20.680 回答
2

您必须在 http 侦听器的标头中定义 content-type,之后您不需要解析 http 侦听器的响应,它会自动以描述的格式。

于 2016-05-24T10:04:46.930 回答
1

就像我对天蓝色函数将 json 数据作为文本/字符串返回的地方所做的那样:

@{body('azure_fun_Name').recipient}
@{body('azure_fun_Name').subject}
@{body('azure_fun_Name').body}
于 2016-12-12T12:09:32.670 回答