逻辑应用程序 - 努力编写 JSON 并追加到数组

Logic App - Struggling with Compose JSON and Append to Array

我正在构建一个逻辑应用程序,它将从源获取 JSON 数据,然后转换数据,然后 POST 将转换后的数据发送到目标。

我正在努力的部分是,我有一个源数据,如下所示:

{
    "Project_Number": "1",
    "Employee_ID": "123"    
},
{
    "Project_Number": "1",
    "Employee_ID": "456"
},
{
    "Project_Number": "2",
    "Employee_ID": "789"
},
{
    "Project_Number": "2",
    "Employee_ID": "123"
}

...我想将其转换成这种格式:

{
    "Project_ID": "1",
    "Project_Assignment":
    [
        {
            "Employee_Number": "123",
            "Employee_Number": "456"
        }
    ]
},
{
    "Project_ID": "2",
    "Project_Assignment":
    [
        {
            "Employee_Number": "789",
            "Employee_Number": "123"
        }
    ]
}

有人可以帮助我在逻辑应用程序中使用的步骤吗?

提前感谢任何帮助。

您可以使用 Inline Code action 通过 JS 代码根据需要处理您的 JSON 对象。

我也做了一些测试,这是我的逻辑应用程序,用于快速测试:

我的 js 代码:

var source=[{
    "Project_Number": "1",
    "Employee_ID": "123"    
},
{
    "Project_Number": "1",
    "Employee_ID": "456"
},
{
    "Project_Number": "2",
    "Employee_ID": "789"
},
{
    "Project_Number": "2",
    "Employee_ID": "123"
}];

var allPjNumbers =[];
var result=[];

source.forEach(sitem=>{
    if(!allPjNumbers.includes(sitem["Project_Number"])){
        allPjNumbers.push(sitem["Project_Number"]);
    }
});

allPjNumbers.forEach(pjNumber => {
    var item = {
        "Project_ID":pjNumber,
        "Project_Assignment":[]
    };

    source.forEach(sitem=>{
        if(sitem.Project_Number == pjNumber){
            item.Project_Assignment.push({"Employee_Number": sitem.Employee_ID})
        }
    });

    result.push(item);
});
    
return result

结果: