'How to remove object from array JSON with filter DataWeave
I have this output
{
"array": [
{
"value": "abc",
"Product2": {
"Name": "phone",
"id": "123abc"
},
"products": [
{
"id": "123abc",
"value": "PKabc"
}
]
}
]
}
From this I need to remove entire object from "products" array if value and id (in the array ) is the same in the "products" array
I'm trying in this way but not work
(payload.array filter ($.value == $.value))
Any suggestions?
Thanks
Solution 1:[1]
You need to iterate over the payload.array
array and then filter by the value attribute over the products array.
%dw 2.0
output application/json
---
payload.array map ((arrayItem, arrayIndex) ->
arrayItem.products filter ($.id != arrayItem.value)
)
Solution 2:[2]
Please check this
%dw 2.0 output application/json
payload.array map if(($.products map $.id) contains $.Product2.id)($ - "products") else $
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | |
Solution 2 | HariKrishna Juttuka |