仅在 DataWeave 2.0/Mule 4 中映射值
Mapping value only in DataWeave 2.0/Mule 4
我是 Mule 4 的菜鸟,一直在尝试弄清楚如何只映射数组中的值。
我的数组是:
[
{
"ssn": "999999991",
"contributionCode": "1",
"amt": -100.000000
},
{
"ssn": "999999991",
"contributionCode": "2",
"amt": 1200.000000
}
]
我需要做的是按 contributionCode 和 ssn 过滤数组,return 仅按 amount 值。我试过这个和它的变体,但我只得到错误:
vars.sumAmounts filter ($.ssn == '999999991' and $.contributionCode == '1' ) map -> ({$.amt})
所以我试图从上面得到的输出只有 -100.000000。如果这看起来像是一个基本问题,请提前致歉,但非常感谢任何人的帮助。
@Tek_Datt 这里有两种方法可以做到,这完全取决于您是否会一遍又一遍地这样做。
这是使用您的 filter
函数搜索方法:
%dw 2.0
output application/dw
var data = [
{
"ssn": "999999991",
"contributionCode": "1",
"amt": -100.000000
},
{
"ssn": "999999991",
"contributionCode": "2",
"amt": 1200.000000
}
]
---
(data filter ($.ssn == "999999991" and $.contributionCode ~= 1)).amt[0]
如果您希望每个转换 运行 多个这样的搜索,那么下一个会更高效:
%dw 2.0
output application/dw
var data = [
{
"ssn": "999999991",
"contributionCode": "1",
"amt": -100.000000
},
{
"ssn": "999999991",
"contributionCode": "2",
"amt": 1200.000000
}
] groupBy ($.ssn ++ "_" ++ $.contributionCode)
---
data["999999991_1"].amt[0]
选一个你喜欢的。
%dw 2.0
输出 application/json
变种数据= [
{
"ssn": "999999991",
"contributionCode": "1",
"amt":-100.000000
},
{
"ssn": "999999991",
"contributionCode": "2",
"amt":1200.000000
}
]
(数据过滤器 ($.ssn == '999999991' and $.contributionCode == '1' ))[0].amt
我是 Mule 4 的菜鸟,一直在尝试弄清楚如何只映射数组中的值。 我的数组是:
[
{
"ssn": "999999991",
"contributionCode": "1",
"amt": -100.000000
},
{
"ssn": "999999991",
"contributionCode": "2",
"amt": 1200.000000
}
]
我需要做的是按 contributionCode 和 ssn 过滤数组,return 仅按 amount 值。我试过这个和它的变体,但我只得到错误:
vars.sumAmounts filter ($.ssn == '999999991' and $.contributionCode == '1' ) map -> ({$.amt})
所以我试图从上面得到的输出只有 -100.000000。如果这看起来像是一个基本问题,请提前致歉,但非常感谢任何人的帮助。
@Tek_Datt 这里有两种方法可以做到,这完全取决于您是否会一遍又一遍地这样做。
这是使用您的 filter
函数搜索方法:
%dw 2.0
output application/dw
var data = [
{
"ssn": "999999991",
"contributionCode": "1",
"amt": -100.000000
},
{
"ssn": "999999991",
"contributionCode": "2",
"amt": 1200.000000
}
]
---
(data filter ($.ssn == "999999991" and $.contributionCode ~= 1)).amt[0]
如果您希望每个转换 运行 多个这样的搜索,那么下一个会更高效:
%dw 2.0
output application/dw
var data = [
{
"ssn": "999999991",
"contributionCode": "1",
"amt": -100.000000
},
{
"ssn": "999999991",
"contributionCode": "2",
"amt": 1200.000000
}
] groupBy ($.ssn ++ "_" ++ $.contributionCode)
---
data["999999991_1"].amt[0]
选一个你喜欢的。
%dw 2.0 输出 application/json 变种数据= [ { "ssn": "999999991", "contributionCode": "1", "amt":-100.000000 }, { "ssn": "999999991", "contributionCode": "2", "amt":1200.000000 }
]
(数据过滤器 ($.ssn == '999999991' and $.contributionCode == '1' ))[0].amt