Logic Apps转换JSON数组并格式化发送至Teams频道问题咨询
Logic Apps 处理嵌套JSON并格式化发送到Teams频道
问题分析
你之前使用triggerBody()?['body'][0]出现异常,一是表达式末尾多了多余的单引号,二是该表达式仅能获取第一个子数组,无法批量处理所有条目。要实现批量格式化发送,需通过循环遍历外层数组来处理每个子数组。
具体实现步骤
添加Foreach循环控件
在Logic Apps设计器中添加「Foreach」循环,将循环数据源设置为triggerBody()?['body'],以此遍历外层数组中的每一个子数组。格式化单条内容
在Foreach循环内部,可通过「Compose」动作拼接指定格式的内容,使用以下表达式提取子数组元素:- 时间戳:
items('Apply_to_each')[0] - RG:
items('Apply_to_each')[1] - Service:
items('Apply_to_each')[2] - Process:
items('Apply_to_each')[3]
拼接示例:
Timestamp- @{items('Apply_to_each')[0]} RG- @{items('Apply_to_each')[1]} Service- @{items('Apply_to_each')[2]} Process- @{items('Apply_to_each')[3]} ---注:
Apply_to_each是循环的默认名称,若修改过循环名称,需替换为对应名称。- 时间戳:
发送到Teams频道
- 若逐条发送:直接将拼接好的内容填入Teams「Post message in a chat or channel」动作的消息正文。
- 若合并为一条消息发送:
- 先在循环外添加「Initialize variable」动作,类型设为字符串,初始值为空。
- 在循环内添加「Set variable」动作,将每次格式化后的内容追加到变量中(表达式示例:
@{variables('消息内容')}@{outputs('Compose')})。 - 最后将变量内容作为Teams消息发送。
内容的提问来源于stack exchange,提问作者Sunny2020
相关产品推荐
相关产品推荐

