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

Azure Logic App实现JSON数组按Id动态分组(无需Azure Function)

Azure Logic App 实现JSON数组按Id动态分组(无需Azure Function)

需求说明

将输入的JSON数组按Id字段分组,转换为指定结构,全程不依赖Azure Function:

输入JSON:

[
    {
        "Id": "1",
        "name": "xxx",
        "age": "20"
    },
    {
        "Id": "1",
        "name": "yyy",
        "age": "52"
    },
    {
        "Id": "5",
        "name": "zzz",
        "age": "59"
    }
]

目标JSON:

[
    {
        "1": [
            {
                "Id": "1",
                "name": "xxx",
                "age": "20"
            },
            {
                "Id": "1",
                "name": "yyy",
                "age": "52"
            }
        ],
        "5": [
            {
                "Id": "5",
                "name": "zzz",
                "age": "59"
            }
        ]
    }
]

实现步骤

  • 步骤1:初始化分组结果变量
    添加「Initialize variable」动作:

    • 变量名:groupedResult
    • 类型:Object
    • 初始值:{}(空对象)
  • 步骤2:遍历原始数组
    添加「Apply to each」动作,选择原始JSON数组作为循环的输入对象。

  • 步骤3:循环内实现动态分组
    在「Apply to each」内部添加「Condition」动作,判断当前元素的Id是否已存在于groupedResult中:

    • 判断表达式:

      contains(variables('groupedResult'), items('Apply_to_each')?['Id'])
      
    • 分支1:Id不存在(False分支)
      添加「Set variable」动作,更新groupedResult:

      • 表达式:
        union(variables('groupedResult'), createObject(items('Apply_to_each')?['Id'], createArray(items('Apply_to_each'))))
        
        作用:为当前Id创建新的键值对,值是包含当前元素的数组。
    • 分支2:Id已存在(True分支)

      1. 添加「Compose」动作(命名为Get_existing_array),获取当前Id对应的已有数组:
        • 表达式:
          variables('groupedResult')[items('Apply_to_each')?['Id']]
          
      2. 添加「Compose」动作(命名为Append_current_item),将当前元素追加到已有数组:
        • 表达式:
          union(outputs('Get_existing_array'), createArray(items('Apply_to_each')))
          
      3. 添加「Set variable」动作,更新groupedResult:
        • 表达式:
          union(variables('groupedResult'), createObject(items('Apply_to_each')?['Id'], outputs('Append_current_item')))
          
  • 步骤4:包装为目标结构
    循环结束后,添加「Compose」动作,将分组结果包装为数组:

    • 表达式:
      createArray(variables('groupedResult'))
      
      此动作的输出即为目标JSON结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 17:17:19