Mule 数据编织转换

Mule dataweave transformation

我有以下 json 作为我的输入负载,我想获取组名为 b 的组值。如何在数据编织中做到这一点?

[
  {
    "groupName": "a",
    "groupvalue": "1234"
  },
  {
    "groupName": "b",
    "groupvalue": "7890"
  }
]

如果您完全确定数组中只有一个元素的groupName等于"b":

%dw 2.0
output application/json
---
(payload filter ($.groupName == "b") map ( $.groupvalue)) [0]

根据您的输入,我得到以下输出:

"7890"

如果 groupName“b”有多个键值对,此代码将为您提供 groupName“b”s 的组值数组。

%dw 2.0
output application/json
---
(payload filter ((item, index) -> item.groupName == "b"))["groupvalue"]

例如:

    payload = [
  {
    "groupName": "a",
    "groupvalue": "1234"
  },
  {
    "groupName": "b",
    "groupvalue": "7890"
  },
  {
    "groupName": "b",
    "groupvalue": "8330"
  }
]

您将获得:

[
  "7890",
  "8330"
]

如果 groupName“b”有多个键值对,此代码将为您提供 groupName“b”s 的组值数组。

%dw 2.0
output application/json
---
(payload filter $.groupName =="b").*groupvalue

示例:-

payload = [
  {
    "groupName": "a",
    "groupvalue": "1234"
  },
  {
    "groupName": "b",
    "groupvalue": "7890"
  },
  {
    "groupName": "b",
    "groupvalue": "8330",
    "groupvalue": "1234"
  }
]

示例 2

payload = [
  {
    "groupName": "a",
    "groupvalue": "1234"
  },
  {
    "groupName": "b",
    "groupvalue": "7890"
  },
  {
    "groupName": "b",
    "groupvalue": "8330"
  }
]

脚本:-

%dw 2.0
output application/json
---
(payload filter $.groupName =="b")..groupvalue