Power Automate中动态键JSON无法生成解析Schema的问题求助
解决Power Automate中Parse JSON适配动态content键的问题
方法一:修改Parse JSON Schema支持动态键
直接调整自动生成的Schema,让content字段兼容media和multiImage两种结构,核心是用anyOf关键字定义两种可选的对象结构:
- 打开Parse JSON动作,点击「编辑」进入Schema编辑界面。
- 找到
elements数组中content字段的定义,替换为以下结构(根据API实际返回的media/multiImage属性补全细节):
"content": { "type": "object", "anyOf": [ { "properties": { "media": { "type": "object", "properties": { "url": { "type": "string" }, "type": { "type": "string" } // 补充media的其他属性定义 } } }, "required": ["media"] }, { "properties": { "multiImage": { "type": "array", "items": { "type": "object", "properties": { "url": { "type": "string" }, "type": { "type": "string" } // 补充multiImage子项的其他属性定义 } } } }, "required": ["multiImage"] } ] }
- 保存Schema后,Parse JSON即可同时识别两种结构,不会因键不匹配报错。
方法二:跳过Parse JSON,直接用表达式/分支处理
如果不想修改Schema,可直接通过表达式或分支逻辑提取数据,摆脱静态Schema的限制:
1. 用表达式判断并提取内容
在需要使用content数据的位置,用contains函数判断当前content包含的键,再提取对应值:
- 提取media内容:
if(contains(items('Apply_to_each')?['content'], 'media'), items('Apply_to_each')?['content']?['media'], '') - 提取multiImage内容:
if(contains(items('Apply_to_each')?['content'], 'multiImage'), items('Apply_to_each')?['content']?['multiImage'], '')
2. 用Switch动作分支处理
- 添加「Apply to each」动作,遍历
elements数组。 - 在循环内添加「Switch」动作,切换条件设为:
keys(items('Apply_to_each')?['content'])[0](获取content对象的第一个键)。 - 分别创建「media」和「multiImage」分支,在每个分支内处理对应结构的数据。
内容的提问来源于stack exchange,提问作者Divyesh Jesadiya
相关产品推荐
相关产品推荐

