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

如何在Power Automate中从Compose输出动态传入Parse JSON的JSON Schema

解决Power Automate中Parse JSON动态传入Schema的问题

Power Automate的Parse JSON动作是设计时绑定Schema的,目的是生成静态的字段引用供后续流程使用,不支持运行时动态传入Schema。要实现你的通用化流程,可采用以下几种可行思路:

方案1:动态字段提取(无需Schema)

直接用表达式从JSON数据中提取所需字段,完全绕过Parse JSON的静态Schema限制:

  • 步骤1:根据用户选择读取对应SharePoint数据文件,用json(body('Get file content'))将文件内容转为JSON对象(假设读取文件的动作名为Get file content)。
  • 步骤2:用表达式直接访问字段,例如:
    • 获取第一个Volume的Name:json(body('Get file content'))?['Volumes']?[0]?['Name']
    • 遍历所有Volume的Cluster:在Select动作中,From填json(body('Get file content'))?['Volumes'],Map填item()?['Cluster']
  • 注意:?是安全访问运算符,能防止字段不存在时流程直接报错。

方案2:绑定对应Schema的分支流程

如果Criteria数量不多,可通过分支实现伪动态适配:

  • 步骤1:用Switch动作,以用户选择的Criteria为判断条件。
  • 步骤2:每个分支下添加独立的Parse JSON动作,手动填入对应Criteria的Schema(比如criteria1分支使用你提供的Schema)。
  • 步骤3:后续流程可统一使用各分支中Parse JSON的输出(需确保各分支输出的字段结构在后续流程中兼容)。

方案3:用外部脚本/函数实现动态解析

如果需要严格的Schema验证+动态解析,可借助外部能力:

  • Office Scripts:编写一个Script,接收JSON数据字符串和Schema字符串,完成验证和解析后返回结构化结果。在Power Automate中调用这个Script,传入读取到的数据文件内容和Schema文件内容。
    示例Script逻辑:
    function main(workbook: ExcelScript.Workbook, jsonData: string, schema: string) {
      const data = JSON.parse(jsonData);
      const schemaObj = JSON.parse(schema);
      // 可添加Schema验证逻辑(比如引入ajv库实现校验)
      return data;
    }
    
  • Azure Functions:编写一个HTTP触发的函数,接收数据和Schema参数,完成解析后返回结果,Power Automate通过HTTP请求调用该函数。

补充:Schema验证的替代方式

如果需要验证数据是否符合对应Schema,可在Compose动作中用try()函数捕获转换错误:

try(json(body('Get file content')), '数据格式不符合Schema')

若返回错误信息,可触发异常通知流程。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 13:57:36