在Logic App中借助Manifest解析JSON并提取header_id调用API
在Azure Logic Apps中提取data_array里的header_id值
方法1:直接通过数组索引提取(简单直接)
从传入的JSON schema里能看到,header_id对应的是position 0,也就是data_array中每个子数组的第一个元素,直接用表达式定位即可:
- 添加For each动作,选择
result->data_array作为遍历的目标数组。 - 在循环内部,用以下表达式获取当前项的
header_id:
这个表达式会直接取出当前子数组的第一个元素(即item()[0]12345或34567)。 - 把提取到的值传入HTTP Connector的请求参数或请求体,即可调用目标API。
方法2:基于schema动态映射(适配字段位置变化)
如果担心后续schema中header_id的position可能变动,可以先从schema中动态获取它的位置,再提取对应值:
- 添加Compose动作,用以下表达式获取
header_id对应的position:
该表达式会过滤出first(filter(triggerBody()?['manifest']?['schema']?['columns'], equals(item()?['name'], 'header_id')))?['position']name为header_id的列,提取它的position值(当前为0)。 - 将Compose的输出保存为变量(比如命名为
headerPosition)。 - 在For each遍历
data_array时,用以下表达式提取header_id:item()[variables('headerPosition')] - 同样将提取到的值传入HTTP Connector完成API调用。
注意事项
- 确保Logic Apps触发器已正确解析传入的JSON,能直接访问
result->data_array和manifest->schema->columns等路径。 - 若需批量调用API,可在For each内部直接添加HTTP动作;若需先收集所有
header_id再统一处理,可使用Append to array variable动作先将所有值存入数组,再执行批量调用。
内容的提问来源于stack exchange,提问作者Admins
相关产品推荐
相关产品推荐

