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

Power Automate中如何将可变键值对象转为可循环数组?

正确实现Power Automate动态JSON键值对转循环数组

你的现有方法靠替换大括号再拆分逗号,会踩很多坑——比如字符串里带逗号的话会被错误拆分,数值、日期类型也会被转成字符串,后续处理容易出问题。给你两个靠谱的实现方案:

方案一:直接生成键值对数组(推荐)

用select函数一次性把JSON对象转成标准的键值对数组,步骤如下:

  1. 添加一个Compose动作,输入以下表达式:
select(keys(body('Parse_JSON')?['body']), createObject('key', item(), 'value', body('Parse_JSON')?['body']?[item()]))

这个表达式会先通过keys()提取所有键名,再用select把每个键和对应的值包装成{key: "键名", value: 对应值}的对象,最终输出一个可直接循环的数组。

  1. 后续的Apply to each直接选择这个Compose的输出即可,循环里可以用items('Apply_to_each')?['key']获取键名,items('Apply_to_each')?['value']获取对应值。

方案二:遍历键数组逐个取值

如果需要分步处理,也可以这么做:

  1. 添加Compose动作,输入表达式提取所有键名:
keys(body('Parse_JSON')?['body'])
  1. 添加Apply to each,选择这个Compose的输出(键名数组)。
  2. 在循环内部,用以下表达式获取当前键对应的值:
body('Parse_JSON')?['body']?[items('Apply_to_each')]

当前键名可以直接用items('Apply_to_each')获取。

为什么你的原有方法不行?

  • 字符串中如果包含逗号(比如地址字段"Los Angeles, CA"),split会把它拆成两个元素,完全破坏原有数据结构。
  • 替换大括号生成的不是标准JSON数组,后续如果需要解析JSON会报错,而且数值、日期等类型会被强制转成字符串,丢失原始类型信息。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 05:35:56