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

Neo*_*Neo 2 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"

      }
    ]
  }
}
Run Code Online (Sandbox Code Playgroud)

想要metadata从上面的 json 消息中删除属性,输出应如下所示

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

        "item": "000010",
        "data":"ad"
      }
    ]
  }
}
Run Code Online (Sandbox Code Playgroud)

我尝试过removeProperty(),它适用于根级别metadata,但内部metadata未删除。

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

Geo*_*hen 5

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

对于内联代码,您可以参考我的下图。变量json是triggerbody中的值,然后删除节点或键并返回json变量。通过这种方式,即使你想删除数组中的许多元数据,你也可以添加一个for循环来删除它,只需将其视为普通的js代码即可。

在此输入图像描述

在此输入图像描述

更新:如果您想从变量中获取值,由于不支持表达式从变量中获取值,因此请使用以下表达式。

var json =wworkflowContext.actions.Initialize_variable.inputs.variables[0].value;
Run Code Online (Sandbox Code Playgroud)

关于如何循环 json 中的数组,请参阅我的下图。

在此输入图像描述