如何在 Logic App 中将 JSON 字段从一个数据源分配给另一个数据源

How to assign JSON field from one data source to another in Logic App

我有两个不同的 JSON 数据进入我的逻辑应用程序:

数据 1:

[
   {
      "EmployeeCode":"123",
      "Username":"abc"
   },
   {
      "EmployeeCode":"456",
      "Username":"def"
   }
]

数据 2:

[
   {
      "EmployeeCode":"123",
      "Team":"IT"
   },
   {
      "EmployeeCode":"456",
      "Team":"Finance"
   }
]

我想生成这样的最终输出:

最终输出:

[
   {
      "EmployeeCode":"123",
      "Username":"abc",
      "Team":"IT"
   },
   {
      "EmployeeCode":"456",
      "Username":"def",
      "Team":"Finance"
   }
]

是否有一种简单的方法可以在逻辑应用程序本身中实现这一点?不使用 JavaScript 或 Azure Function 或任何东西?

从我们这里复制后,我们如何能够达到您的要求。

首先,我们对每个数据使用了 2 次 Parse JSON 来提取 JSON 中的项目。

然后使用条件连接器比较 EmployeeCode,然后使用组合连接器合并。

然而,为了使整个 JSON 用于将来的目的,我们已经初始化了一个数组变量,然后附加了来自条件连接器的成功运行。这是我的逻辑应用程序。

结果:

下面是我的逻辑应用程序的代码视图

{
    "definition": {
        "$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#",
        "actions": {
            "FinalJSON": {
                "inputs": "@variables('FinalJson')",
                "runAfter": {
                    "For_each": [
                        "Succeeded"
                    ]
                },
                "type": "Compose"
            },
            "For_each": {
                "actions": {
                    "For_each_2": {
                        "actions": {
                            "Condition": {
                                "actions": {
                                    "Append_to_array_variable": {
                                        "inputs": {
                                            "name": "FinalJson",
                                            "value": "@outputs('Compose')"
                                        },
                                        "runAfter": {
                                            "Compose": [
                                                "Succeeded"
                                            ]
                                        },
                                        "type": "AppendToArrayVariable"
                                    },
                                    "Compose": {
                                        "inputs": {
                                            "EmployeeCode": "@{items('For_each')['EmployeeCode']}",
                                            "Team": "@{items('For_each_2')['Team']}",
                                            "Username": "@{items('For_each')['Username']}"
                                        },
                                        "runAfter": {},
                                        "type": "Compose"
                                    }
                                },
                                "expression": {
                                    "and": [
                                        {
                                            "equals": [
                                                "@items('For_each')['EmployeeCode']",
                                                "@items('For_each_2')['EmployeeCode']"
                                            ]
                                        }
                                    ]
                                },
                                "runAfter": {},
                                "type": "If"
                            }
                        },
                        "foreach": "@body('Parse_JSON2')",
                        "runAfter": {},
                        "type": "Foreach"
                    }
                },
                "foreach": "@body('Parse_JSON1')",
                "runAfter": {
                    "Initialize_variable": [
                        "Succeeded"
                    ]
                },
                "type": "Foreach"
            },
            "Initialize_variable": {
                "inputs": {
                    "variables": [
                        {
                            "name": "FinalJson",
                            "type": "array"
                        }
                    ]
                },
                "runAfter": {
                    "Parse_JSON2": [
                        "Succeeded"
                    ]
                },
                "type": "InitializeVariable"
            },
            "JSON1": {
                "inputs": [
                    {
                        "EmployeeCode": "123",
                        "Username": "abc"
                    },
                    {
                        "EmployeeCode": "456",
                        "Username": "def"
                    }
                ],
                "runAfter": {},
                "type": "Compose"
            },
            "JSON2": {
                "inputs": [
                    {
                        "EmployeeCode": "123",
                        "Team": "IT"
                    },
                    {
                        "EmployeeCode": "456",
                        "Team": "Finance"
                    }
                ],
                "runAfter": {
                    "JSON1": [
                        "Succeeded"
                    ]
                },
                "type": "Compose"
            },
            "Parse_JSON1": {
                "inputs": {
                    "content": "@outputs('JSON1')",
                    "schema": {
                        "items": {
                            "properties": {
                                "EmployeeCode": {
                                    "type": "string"
                                },
                                "Username": {
                                    "type": "string"
                                }
                            },
                            "required": [
                                "EmployeeCode",
                                "Username"
                            ],
                            "type": "object"
                        },
                        "type": "array"
                    }
                },
                "runAfter": {
                    "JSON2": [
                        "Succeeded"
                    ]
                },
                "type": "ParseJson"
            },
            "Parse_JSON2": {
                "inputs": {
                    "content": "@outputs('JSON2')",
                    "schema": {
                        "items": {
                            "properties": {
                                "EmployeeCode": {
                                    "type": "string"
                                },
                                "Team": {
                                    "type": "string"
                                }
                            },
                            "required": [
                                "EmployeeCode",
                                "Team"
                            ],
                            "type": "object"
                        },
                        "type": "array"
                    }
                },
                "runAfter": {
                    "Parse_JSON1": [
                        "Succeeded"
                    ]
                },
                "type": "ParseJson"
            }
        },
        "contentVersion": "1.0.0.0",
        "outputs": {},
        "parameters": {},
        "triggers": {
            "manual": {
                "inputs": {
                    "schema": {}
                },
                "kind": "Http",
                "type": "Request"
            }
        }
    },
    "parameters": {}
}