问题描述
使用 dataweave,我想从对象数组中获取所有“ProductCode”值。输出还应获取不同的值。
输入:
[
{
"Header": {
"Comments": null,"InvoiceNo": "4363627","vendor": "vendor1","Description": "Invoice1"
},"Line": [
{
"Billing": null,"ComboNum": "1","ProductCode": "D4500"
}
]
},{
"Header": {
"Comments": "GPoint","InvoiceNo": "4356750","vendor": "vendor2","Description": "ALL"
},"ProductCode": "S4500"
},{
"Billing": null,"ComboNum": "2","ProductCode": "D4500"
},"ComboNum": "3","ProductCode": "D4501"
},"ComboNum": "4","ProductCode": "B4500"
}
]
}
]
预期输出:
ProductCode : ('D4500','S4500','D4501','B4500')
提前致谢
解决方法
试试这个
%dw 2.0
output application/json
---
'ProductCode': payload.Line..ProductCode distinctBy $
,
你可以试试这个:
(flatten(payload.Line)).ProductCode distinctBy (a) -> a
首先,它收集所有行。然后,它提取产品代码,最后,它应用一个不同的代码来获得唯一代码。