在LogicApp中更新Json阵列

时间:2019-09-11 19:43:02

标签: azure-logic-apps

我正在尝试在逻辑应用程序中更新一些JSON。这是我的JSON。

{
  "headers": [
    {
      "count": 0,
      "lookup": "PSI"
    },
    {
      "count": 0,
      "lookup": "Clean"
    }
  ]
}

在for每个循环中,我试图更新特定标头数组元素的属性count

这是我正在做的财产。

@setproperty(variables('colObj'), 'headers', setproperty(items('For_each'), 'count', 1))

当前,setproperty仅返回数组的一个元素,而不返回整个数组。

我需要set属性来返回headers数组的所有元素并更新当前foreach项目的count属性。

有人知道如何在逻辑应用程序中执行此操作吗?

1 个答案:

答案 0 :(得分:0)

实际上,我们已经知道要在子对象中设置child属性,而应使用嵌套的setProperty()调用。并且items('For_each')不能使json数据的子部分安静下来,就像variables('colObj')['headers'][0]一样。而且,如果您尝试再添加一个嵌套的setProperty(),它将表示该数组不是一个对象,那么您的方式将只会得到一个子数组对象。

因此,如果要获取完整的json对象,则必须添加一些要实现的操作。也许您可以参考我的流程。

我使用Parse_json设置json数据,它应该是您的variables('colObj'),一个null对象变量,一个数组变量。

enter image description here

在For_each中,用setProperty(body('Parse_JSON'),'headers',setProperty(items('For_each'),'count',34))设置结果对象,然后将其附加到数组中。在For_each操作之后,初始化一个新对象以获取所需的对象,并使用setProperty(body('Parse_JSON'),'headers',variables('middle'))对其进行设置。

enter image description here

这是运行详细信息。

enter image description here

enter image description here