我有一个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
答案 0 :(得分:10)
这个技巧就是HTTP Listener主体的输出是一个String,所以你需要先将它转换为JSON才能解析它。有一个@parse()命令可以做到这一点。
所以,如果你这样做,它应该有效:
@ {JSON(触发器()。outputs.body.Content).recipient}
那应该给你收件人。如果这不起作用,请告诉我。
答案 1 :(得分:2)
您必须在http侦听器的标头中定义内容类型,之后您不需要解析http侦听器的响应,它将自动以描述的格式。
答案 2 :(得分:1)
正如我所做的那样,azure函数将json数据作为text / string返回:
@{body('azure_fun_Name').recipient}
@{body('azure_fun_Name').subject}
@{body('azure_fun_Name').body}