1

我收到的 JSON 没有以很好的方式分组。对于 HR 系统中已更新的每个“字段”,我都会收到一个包含许多不必要字段的对象。这些对象只有三个我感兴趣的值,“uniqueId”、“field”和“value”。


[
    {
        "uniqueId": "Env30362",
        "field": "DateOfBirth",
        "value": "1980-12-01"
Lots of more unnecessary fields... 
    },
    {
        "uniqueId": "Env30362",
        "field": "StartDate",
        "value": "2020-01-01"
Lots of more unnecessary fields... 
    },
{
        "uniqueId": "Env30363",
        "field": "DateOfBirth",
        "value": "1980-12-01"
Lots of more unnecessary fields... 
    },
    Lots of objects with different uniqueId…
]

我想获取与 uniqueId 关联的所有“字段”和“值”并创建一个新的 JSON,例如 uniqueId 是 Env30362。

{
"uniqueId": "Env30362",
"StartDate”: "2020-01-01",
"DateOfBirth": "1980-12-01"
etc..
}

如何使用逻辑应用实现这一目标?

4

1 回答 1

1

请参考我的azure logic app

我定义了一个json字符串作为输入:</p>

在此处输入图像描述

您可以使用Parse JSON 操作来解析您的 JSON,您可以单击Use sample payload to generate schema并将您的 json 粘贴到其中以生成模式。

在此处输入图像描述

定义一个数组以uniqueId循环获取所有内容。

在此处输入图像描述

在此处输入图像描述

您可以使用以下表达式删除多余的uniqueId.

表达:

union(variables('uniqueIdArr'),variables('uniqueIdArr'))

在此处输入图像描述

循环uniqueId数组,然后使用Filter 数组操作过滤掉包含相同uniqueId.

表达:

array(json(variables('jsonString')))

string(item())

body('Filter_array')[2]?['value']

body('Filter_array')[1]?['value']

在此处输入图像描述 在此处输入图像描述

输入json字符串:</p>

[
    {
        "uniqueId": "Env30362",
        "field": "DateOfBirth",
        "value": "1980-12-01",
        "test1": "value1"
    },
    {
        "uniqueId": "Env30362",
        "field": "StartDate",
        "value": "2020-01-01",
        "test1": "value2"
    },
    {
        "uniqueId": "Env30363",
        "field": "DateOfBirth",
        "value": "1980-12-01",
        "test1": "value1"
    },
        {
        "uniqueId": "Env30363",
        "field": "DateOfBirth",
        "value": "1980-12-01",
        "test1": "value1"
    },
    {
        "uniqueId": "Env30363",
        "field": "StartDate",
        "value": "2020-01-01",
        "test1": "value2"
    },
    {
        "uniqueId": "Env30362",
        "field": "DateOfBirth",
        "value": "1980-12-01",
        "test1": "value1"
    }
]
于 2020-12-12T14:20:02.147 回答