Power Automate中JSON转数组报错:XML转换失败求解决方案
解决JSON转数组遍历的错误方案
错误根源
你使用xml()函数转换JSON时触发错误,核心原因是你的JSON根对象包含多个同级属性(比如错误提示中的OOH.wu.2023.9.53),但xml()函数要求JSON根必须是单个属性才能生成合法XML文档,因此无法完成转换。
替代解决方案(无需XML转换)
直接对JSON对象进行数组转换,推荐以下几种高效方法:
方案1:使用
values()函数提取数组
在Compose动作中使用公式:values(body('Parse_JSON'))values()函数会直接将JSON根对象的所有属性值提取为一个数组,之后可直接用Apply to Each遍历该Compose的输出。方案2:使用Select动作生成数组
- 在
Parse JSON后添加Select动作; - 设置“From”为
body('Parse_JSON'); - 在“Map”字段中输入
@item(); Select动作会自动将所有根属性的值转换为数组,后续遍历Select的输出即可。
- 在
方案3:手动构造数组(仅适合同数量固定的场景)
如果合同对象的键是固定的,可直接用createArray构造数组:createArray(body('Parse_JSON')?['OOH.wu.2023.9.53'], body('Parse_JSON')?['其他合同键'])注意:此方法仅适合合同数量固定的场景,动态数量优先用前两种方案。
验证逻辑
以上方法均直接操作JSON结构,避开了xml()函数的限制,更符合Power Automate处理JSON的原生逻辑,且无需额外的格式转换步骤。
内容的提问来源于stack exchange,提问作者microsoftdeveloperdesigner
相关产品推荐
相关产品推荐

