我是Mule 4的新手,一直在试图弄清楚如何只映射数组中的值。我的数组是:
[
{
"ssn": "999999991",
"contributionCode": "1",
"amt": -100.000000
},
{
"ssn": "999999991",
"contributionCode": "2",
"amt": 1200.000000
}
]我需要做的是通过contributionCode和ssn过滤数组,并只返回金额值。我已经尝试过这个和它的变体,但我只得到错误:
vars.sumAmounts filter ($.ssn == '999999991' and $.contributionCode == '1' ) map -> ({$.amt})
因此,我试图从上面得到的输出只有-100.000000。如果这似乎是一个基本的问题,请提前道歉,但任何人的帮助都将非常感谢。
发布于 2020-02-24 05:15:41
@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]选一个你喜欢的。
发布于 2020-04-05 15:32:25
%dw 2.0输出应用程序/json变量数据=[{ "ssn":"999999991","contributionCode":"1","amt":-100.000000 },{ "ssn":"999999991","contributionCode":"2","amt":1200.000000 }
]
(数据筛选器($.ssn == '999999991‘和$.contributionCode == '1’)).amt
https://stackoverflow.com/questions/60364826
复制相似问题