Teams工作流Adaptive Card数组数据访问错误排查求助
解决Adaptive Card访问无命名根数组数据的问题
问题描述
集成Teams工作流时,服务器推送的告警数据为无命名根数组格式,在Adaptive Card中无法正确访问数组内的嵌套数据,使用VSCode的Adaptive Card Preview Extension测试时,尝试过root、content等访问路径均无效。
问题分析
你的card.data.json是直接用[]包裹的无命名根数组,而非嵌套在某个根对象下的数组。因此访问时不需要额外的根对象名称(比如ROOTARRAY、root这类不存在的字段),直接通过数组索引+属性路径即可定位数据。
从你的数据结构来看,目标文本的层级为:数组第1项 → content → body数组第1项 → items数组第1项 → text
修正后的代码示例
修改card.json中的数据绑定路径,替换为正确的访问逻辑:
{ "$schema": "http://adaptivecards.io/schemas/adaptive-card.json", "type": "AdaptiveCard", "version": "1.4", "body": [ { "type": "Container", "items": [ { "type": "TextBlock", "text": "${[0].content.body[0].items[0].text}", "weight": "Bolder", "size": "Medium", "wrap": true }, { "type": "TextBlock", "text": "9" }, { "type": "FactSet", "facts": [ { "title": "Started (UTC):", "value": "2021-04-01T19:40:10Z" } ] } ] }, { "type": "Container", "items": [ { "type": "FactSet", "facts": [ { "title": "Name:", "value": "${[0].content.body[1].items[0].facts[0].value}" }, { "title": "Description:", "value": "${[0].content.body[1].items[0].facts[1].value}" }, { "title": "Title:", "value": "${[0].content.body[1].items[0].facts[2].value}" }, { "title": "Title:", "value": "${[0].content.body[1].items[0].facts[3].value}" }, { "title": "Title:", "value": "${[0].content.body[1].items[0].facts[4].value}" }, { "title": "Title:", "value": "${[0].content.body[1].items[0].facts[5].value}" } ] } ] } ], "actions": [ { "type": "Action.OpenUrl", "title": "View", "url": "https://openalert.com/.../.../" } ] }
关键说明
- 根数组直接用
[0]访问第一个元素,若数组包含多个元素,可通过指定对应索引或循环遍历获取数据 - 严格按照数据的嵌套层级拼接路径:比如访问FactSet中的Name字段值,路径为
${[0].content.body[1].items[0].facts[0].value} - 在VSCode预览插件中,确保
card.data.json被正确关联为数据源,刷新后即可看到绑定效果
内容的提问来源于stack exchange,提问作者taniks1618
相关产品推荐
相关产品推荐

