Power Automate中遍历由字典对象组成的对象的实现方法咨询
Power Automate中遍历由字典对象组成的对象的实现方法咨询
嗨,我来帮你搞定这个Power Automate里遍历嵌套字典对象的问题!你现在的需求是动态遍历外层的键,然后访问每个子字典的属性,其实用内置的动作和表达式就能轻松实现,我给你一步步拆解:
首先,先把你的源对象妥善存放,建议用一个Compose动作(比如命名为“源嵌套字典对象”),把你提供的JSON内容填进去,注意把"替换成标准的双引号,正确的JSON格式应该是:
{ "Prop1": { "value": "test", "displayName": "test", "fieldType": "string", "text": "test" }, "Prop2": { "value": "temp", "displayName": "temp", "fieldType": "string", "text": "temp" } }
接下来分两种常用的实现方式:
方式一:通过循环逐个处理每个键和子对象
- 新增一个Compose动作(命名为“所有外层键”),输入表达式:
这个表达式会提取出外层所有的键,也就是keys(outputs('源嵌套字典对象'))["Prop1", "Prop2"]这样的数组。 - 添加Apply to each动作,把“所有外层键”的输出作为循环的输入,这样就会逐个遍历每个键。
- 在循环内部,你就可以访问当前键对应的子对象及其属性了:
- 要获取完整的子对象,用表达式:
outputs('源嵌套字典对象')[items('Apply_to_each')] - 要直接访问子对象的某个属性(比如
value),用表达式:
这里的outputs('源嵌套字典对象')[items('Apply_to_each')]?['value']?是可选链操作符,能避免因为键不存在导致的流程报错,非常实用。
你可以把这些表达式放到Compose动作里,或者直接用在后续的业务动作中(比如发送邮件、写入列表等)。
- 要获取完整的子对象,用表达式:
方式二:用Select动作一次性映射所有键和属性
如果你不需要逐个处理,只是想把键和对应的属性整理成结构化的列表,可以用Select动作:
- 在Select的“From”输入框中,填入表达式
keys(outputs('源嵌套字典对象'))。 - 在“映射”区域,自定义你需要的字段:
- 比如添加“外层键”,值填
item(); - 添加“Display名称”,值填
outputs('源嵌套字典对象')[item()]?['displayName']; - 添加“字段值”,值填
outputs('源嵌套字典对象')[item()]?['value'];
- 比如添加“外层键”,值填
- 运行后,Select的输出就是一个包含所有键和对应属性的数组,后续可以直接用这个数组做批量操作。
最后提醒一下,确保你的源对象在Power Automate里是被正确解析成JSON对象的,如果是从其他地方获取的字符串,记得先用Parse JSON动作把它转换成对象,这样表达式才能正常访问属性哦!
备注:内容来源于stack exchange,提问作者Mohamad Al Asmar
相关产品推荐
相关产品推荐

