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

如何在Power Automate中遍历带有动态属性的JSON数据(TSheet工时表API场景)

如何在Power Automate中遍历带有动态属性的JSON数据(TSheet工时表API场景)

嘿,我完全懂你现在的头疼之处——TSheet返回的这个JSON结构确实有点反直觉,不是咱们平时用的数组格式,而是把每个工时表的ID当成了动态键,直接塞给Apply to Each肯定会报错,因为它只认数组类型的数据。别慌,我来给你一步步拆解怎么搞定:

  • 第一步:先确保你已经用Parse JSON动作正确解析了TSheet的API响应。解析的时候最好直接用你拿到的这个示例JSON生成Schema,这样Power Automate能精准识别整个结构。你现在的核心问题就出在results.timesheets下面的结构:它是一个对象,不是数组。
  • 第二步:加一个Compose动作,专门提取出timesheets这个对象。输入的表达式可以这么写:body('Parse_JSON')?['results']?['timesheets'],记得把Parse_JSON换成你实际用的那个动作的名字哦。
  • 第三步:这是最关键的一步!再新增一个Compose动作,用Power Automate自带的values()函数把刚才的对象转成数组。表达式就写:values(outputs('Compose'))
    • 简单说下这个函数的作用:它会把timesheets对象里的所有子对象(也就是每一条工时表数据)都提取出来,自动拼成一个标准数组。转完之后的格式就变成了[{"id":1234567,"state":"CLOSED","user_id":123456}, {"id":415628812,"state":"APPROVED","user_id":234567}],这就是Apply to Each能正常处理的格式了。
  • 第四步:现在把第二个Compose动作的输出拖进Apply to Each动作里,就能顺利遍历每一条工时表数据了!在循环里你可以直接引用每个条目的属性,比如items('Apply_to_Each')?['id']、items('Apply_to_Each')?['state']这些字段都能正常调用。

对了,还有个小技巧:如果你懒得用Parse JSON,其实也可以直接在Compose里一步到位写表达式:values(body('HTTP')?['results']?['timesheets']),前提是你的HTTP请求动作返回的是正确的JSON。不过还是更推荐用Parse JSON,这样有类型校验,后续改起来也更清晰。

备注:内容来源于stack exchange,提问作者Huan Pham

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.15 15:34:30