You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Logic Apps:将API返回结果写入SQL Server的字段提取与批量插入求助

解决Logic Apps中API数据插入SQL Server的问题

先纠正字段提取的路径错误

你之前的表达式失败,核心原因是没匹配正确的JSON层级:

  • API返回的data是数组类型,必须先取第一个元素data[0],才能访问到里面的items数组
  • 正确的单条数据字段提取表达式(安全写法,避免空值报错):
    @body('Parsed JSON')?['data']?[0]?['items']?[0]?['subject']
    @body('Submit Mimecast API')?['data']?[0]?['items']?[0]?['size']
    

批量插入的最佳实现:用For Each循环遍历所有记录

要把每条items里的记录插入SQL,按以下步骤操作:

  1. 解析JSON(必填步骤)
    添加「Parse JSON」动作,将API返回的body作为输入源;点击「使用示例有效负载生成架构」,粘贴你提供的API返回JSON,自动生成结构化Schema。这一步能让Logic Apps精准识别JSON字段,避免后续引用出错。

  2. 添加For Each循环

    • 循环的「选择输出」来源设置为:
      @body('Parsed JSON')?['data']?[0]?['items']
      
      这个表达式会直接获取所有需要插入的记录集合。
    • 在循环内部添加「执行SQL存储过程」动作。
  3. 映射存储过程参数
    存储过程的每个参数,对应当前循环项的字段,用@items('For_Each')?['字段名']取值,例如:

    • 主题参数:@items('For_Each')?['subject']
    • 大小参数:@items('For_Each')?['size']
    • 收件时间参数:@items('For_Each')?['receiveddate']
      依次把所有需要归档的字段映射到存储过程的对应参数即可。

额外处理:API分页(可选)

如果API返回的meta.pagination.next不为空,说明还有未获取的下一页数据:

  • 外层套一个「Do Until」循环,终止条件设为@empty(body('Parsed JSON')?['meta']?['pagination']?['next'])
  • 每次循环调用API时,把上一次返回的next值作为分页参数传入(具体参数名参照API文档)
  • 获取新页数据后,重复上述Parse JSON + For Each插入流程即可

内容的提问来源于stack exchange,提问作者KodeNode

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 21:44:56