Power Automate中Parse JSON输出为何被识别为Null而非数组?
解决Power Automate中Parse JSON后无法识别d.results数组的问题
排查要点及解决步骤
1. 修正Parse JSON的Schema结构
你之前使用的Schema可能存在多余的properties嵌套层级,导致解析后的结构与实际响应不匹配。正确的Schema应直接映射d.results的层级:
- 重新从Send HTTP的实际响应内容生成Schema:在Parse JSON步骤中选择「使用示例负载生成Schema」,粘贴Send HTTP返回的完整Body(需包含
d.results数组),让系统自动生成匹配的Schema。 - 正确的Schema大致结构如下(可根据实际响应调整):
{ "type": "object", "properties": { "d": { "type": "object", "properties": { "results": { "type": "array", "items": { "type": "object", "properties": { "ID": {"type": "string"}, "VersionLabel": {"type": "string"}, // 其他版本相关属性 } } } } } } }
2. 修正数组访问表达式
你使用的@{body('Parse_JSON')?['properties']?['d']?['properties']?['results']}路径错误,properties是Schema定义中的字段,并非解析后输出的实际键名。正确的访问路径应为:
@{body('Parse_JSON')?['d']?['results']}
更稳妥的方式是直接在动态内容面板中,展开Parse JSON的输出,选择d下的results数组,避免手动输入表达式出错。
3. 调整Apply to Each的数据源设置
在Apply to Each步骤中,不要手动输入表达式,直接从动态内容里选择Parse JSON输出中的results数组(路径为Parse JSON > d > results),Power Automate会自动识别这是数组类型并启用循环逻辑。
4. 确保Send HTTP的响应格式正确
在Send HTTP步骤的高级选项中,添加Accept请求头,值设置为application/json,强制SharePoint返回JSON格式的响应,避免Parse JSON因响应格式不规范导致解析异常。
内容的提问来源于stack exchange,提问作者kherezae
相关产品推荐
相关产品推荐

