如何在Azure逻辑应用中使用replace()表达式从json输入消息中删除一个属性?

时间:2019-11-25 10:50:47

标签: json azure azure-logic-apps

{
  "metadata": {
    "id": "2",
    "uri": "3",
    "type": "2"
  },
  "Number": "2323600002913",
  "Date": "04/21/2009",
  "postingDate": "00/00/0000",
  "ata": {
    "results": [
      {
        "metadata": {
          "id": "r",
          "uri": "e2",
          "type": "s2"
        },

        "item": "000010",
        "data":"ad"

      }
    ]
  }
}

想要从上面的json消息中删除metadata属性,并且输出应类似于下面的

{
  "Number": "2323600002913",
  "Date": "04/21/2009",
  "postingDate": "00/00/0000",
  "ata": {
    "results": [
      {

        "item": "000010",
        "data":"ad"
      }
    ]
  }
}

我尝试了removeProperty(),它在根级别metadata上有效,但是在metadata内部没有删除。

在这种情况下如何使用replace()或仅删除metadata的任何其他方法。

1 个答案:

答案 0 :(得分:2)

最简单的方法是使用内联代码,即使使用removeProperty()表达式删除结果下的元数据,它也会返回结果数组数据而不是整个json数据。然后,您必须将它们结合起来,这不是一种方便的方法。

使用内联代码,您可以参考下面的图片。变量json是triggerbody的值,然后只需删除节点或键并返回json变量即可。这样,即使您想删除数组中的许多元数据,也可以添加for循环将其删除,只需将其视为纯js代码即可。

enter image description here

enter image description here

更新:如果您想从变量中获取价值,请使用以下表达式,因为没有支持表达式可以从变量中获取价值。

var json =wworkflowContext.actions.Initialize_variable.inputs.variables[0].value;

有关如何在json中循环数组的信息,请参见下面的图片。

enter image description here