I have an input payload (json array) that needs to be enriched with a key-value in a specific index. My requirement was to put the additional key-value (the same for all objects) at index 1, so i've managed to do like this:
Input payload:
[
{
"key1": "value1",
"key3": "value3",
"key4": "value4",
"key5": "value5"
},
{
"key1": "value1",
"key3": "value3",
"key4": "value4",
"key5": "value5"
},
{
"key1": "value1",
"key3": "value3",
"key4": "value4",
"key5": "value5"
}
]
Script:
%dw 2.0
output application/json
---
payload map (
($)[&0] ++ {"key2": "value2"} ++ ($ - "key1")
)
Output:
[
{
"key1": "value1",
"key2": "value2",
"key3": "value3",
"key4": "value4",
"key5": "value5"
},
{
"key1": "value1",
"key2": "value2",
"key3": "value3",
"key4": "value4",
"key5": "value5"
},
{
"key1": "value1",
"key2": "value2",
"key3": "value3",
"key4": "value4",
"key5": "value5"
}
]
My question is: how to achieve this dynamically?
Thanks, Marco