逻辑应用程序:如何使用每个循环合并多个响应

Logic app : How to merge multiple response using each loop

我正在使用 1 个第 3 方服务,该服务一次提供 500 条记录,但我希望在单个请求中将所有记录放在一起。我已经使用 Each loop 集成了那部分,这就是我的 for each loop 的样子

当我尝试使用 Array 获取所有响应时,数据没有结构化,Array 附加了整个 JSON 哪个响应作为对象,看起来像这样

[{
    "total": 628,
    "start": 0,
    "count": 500,
    "data": [
        {
object 1
        }]
},
{
    "total": 628,
    "start": 0,
    "count": 500,
    "data": [
        {
object 2
        }]
}]

现在我想要的是

[{
    "total": 628,
    "start": 0,
    "count": 500,
    "data": [
        {
 object 1
        },
        {
object 2
        },
        {
object 3
         }
}]

我不知道如何在逻辑应用程序中合并这些数据,有人可以指导如何做到这一点

你没有显示你的流程细节,所以你可以参考我下面的流程。为了模拟你的情况,我使用 http 触发器来获取 json 数据。下面是我的测试json数据。如果这不是您想要的,请随时告诉我。

[{
    "total": 628,
    "start": 0,
    "count": 500,
    "data": [
        {
      "count": 0,
      "lookup": "PSI"
    }]
},
{
    "total": 628,
    "start": 0,
    "count": 500,
    "data": [
        {
      "count": 1,
      "lookup": "CLEAN"
    }]
}]

首先我从触发器主体解析json数据,初始化一个数组变量来存储格式化后的数组。

然后循环json数据,格式化数组。如果你所有的 data 属性 在数组中只有一个对象 json,你可以在数组后面附加 items('For_each')['data'][0],否则你需要另一个 For each 来循环data 数组。

然后得到你想要的结果 json 值,因为你只想要一个 json 对象并且你的 json 值是相同的,除了 data 属性.所以我使用 compose 动作来表示 json。我用 setProperty(body('Parse_JSON')[0],'data',variables('array')).

设置值

这是我的测试结果,希望这是你想要的。

更新:如果我没有误解,你的数据数组有多个对象,你想得到所有的对象,如果正确就像你提到的那样你需要另一个For each action 循环数组,然后将它们全部追加到变量中,你可以参考下面的流程。

所有其他操作相同,在存在的For each中添加一个For each

这是我的测试结果。下面是我发送到逻辑应用程序的 json 数据。

[{
    "total": 628,
    "start": 0,
    "count": 500,
    "data": [
        {
      "count": 0,
      "lookup": "PSI"
    },{
        "count": 3,
      "lookup": "TEST"
    }]
},
{
    "total": 628,
    "start": 0,
    "count": 500,
    "data": [
        {
      "count": 1,
      "lookup": "CLEAN"
    },{
        "count": 4,
      "lookup": "GET"
    }]
}]

Update2:下面是我的测试json和结果:

[{ 
    "total": 628,
    "start": 0,
    "count": 500,
    "data": [ 
        [
            { "count" : 0, "lookup": "test0" },
            { "count": 1, "lookup": "test1" }
        ], 
        [ 
            { "count": 2, "lookup": "test2" },
            { "count": 3, "lookup": "test3" }
        ]
    ] 
},{ 
    "total": 628,
    "start": 0,
    "count": 500,
    "data": [ 
        [
            { "count" : 4, "lookup": "test4" },
            { "count": 5, "lookup": "test5" }
        ], 
        [ 
            { "count": 6, "lookup": "test6" },
            { "count": 7, "lookup": "test7" }
        ]
    ] 
}]

只需为每个动作加一个。

更新:要发送带有 json 数据的 http 响应,您可以使用 Response 操作来完成。