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

如何在Power Automate流中生成含动态属性的JSON负载

实现Dynamics 365双表映射生成API请求JSON负载

以下是基于你提供的触发表new_demotable001、映射表new_metadatatable生成目标API请求JSON的具体操作步骤:

1. 基础配置

  • 触发规则:设置当new_demotable001新增行时触发流,触发输出数据示例:
    {
      "new_empname": "EmpName5",
      "new_demotable001id": "259ffaeb-a354-ef11-bfe3-000d3af2cd77",
      "new_empcontact": "555555555555",
      "new_name": "DemoDataTestin",
      "new_empstatus": 100000001,
      "_new_empstatus_label": "On-Boarded"
    }
    
  • 获取映射数据:添加「List rows」操作,读取new_metadatatable的所有记录,返回数据示例:
    {
      "@Microsoft.Dynamics.CRM.totalrecordcount": -1,
      "@Microsoft.Dynamics.CRM.totalrecordcountlimitexceeded": false,
      "@Microsoft.Dynamics.CRM.globalmetadataversion": "10896094",
      "value": [
        {
          "new_sirionattributename": "title",
          "new_dynamicsattributename": "new_empname",
          "new_name": "First"
        },
        {
          "new_sirionattributename": "test1",
          "new_dynamicsattributename": "new_empcontact",
          "new_name": "Second"
        },
        {
          "new_sirionattributename": "orgId",
          "new_dynamicsattributename": "new_empstatus",
          "new_name": "Third"
        }
      ]
    }
    

2. 过滤并构建映射键值对

方法一:循环+条件筛选

  • 添加「Apply to each」操作,选择body('List_rows')?['value']作为循环输入。
  • 循环内添加「Condition」操作,使用指定判断条件:
    contains(triggerOutputs()?['body'], items('Apply_to_each')?['new_dynamicsattributename'])
    
  • 当条件为真时,添加「Append to array variable」操作:
    1. 先创建名为mappedPairs的数组类型变量。
    2. 向数组追加如下对象:
      {
        "key": items('Apply_to_each')?['new_sirionattributename'],
        "value": triggerOutputs()?['body'][items('Apply_to_each')?['new_dynamicsattributename']]
      }
      

方法二:Select+Filter数组简化操作

  • 添加「Select」操作,输入为body('List_rows')?['value'],设置映射规则:
    • 键:items('Select')?['new_sirionattributename']
    • 值:triggerOutputs()?['body'][items('Select')?['new_dynamicsattributename']]
  • 添加「Filter array」操作,输入为body('Select'),过滤条件设为:
    contains(triggerOutputs()?['body'], items('Filter_array')?['key'])
    

3. 生成目标JSON负载

循环或筛选完成后,使用以下表达式将处理后的数组转换为预期格式:

  • 若用方法一:
    json(concat('{"data":', string(createObject(join(xpath(xml(json(concat('{"root":', variables('mappedPairs'), '}'))), '//key/text()'), join(xpath(xml(json(concat('{"root":', variables('mappedPairs'), '}'))), '//value/text()'))), '}'))
    
  • 若用方法二:
    json(concat('{"data":', string(createObject(join(body('Filter_array')?['key'], ','), join(body('Filter_array')?['value'], ','))), '}'))
    

最终生成的JSON负载与预期一致:

{
    "data":{
            "title": "EmpName5",
            "test1": "555555555555",
            "orgId": "100000001"
           }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 00:26:16