I've read this and this and this but explanations are pretty scarce. I understand what "&" means. But I can't wrap my head around what [&] means =\
Can someone please explain me what this [&] does applicable to this example? What exactly happening in lines
"@1": "outer[&4].inner[&2].t",
"@(3,eventTypeCode)": "outer[&4].inner[&2].etc"
Input JSON :
{
"uID": 1000358546,
"events": [
{
"eventTypeCode": "FEEDBACK",
"transports": [
"PUSH",
"SMS"
]
},
{
"eventTypeCode": "MARKETING",
"transports": [
"PUSH",
"EMAIL"
]
},
{
"eventTypeCode": "ORDER_STATUS",
"transports": [
"SOC_VK"
]
}
]
}
Spec :
[
{
"operation": "shift",
"spec": {
"events": {
"*": {
"transports": {
"*": {
"*": {
"@1": "outer[&4].inner[&2].t",
"@(3,eventTypeCode)": "outer[&4].inner[&2].etc"
}
}
}
}
},
"*": "&"
}
}
]
Result :
{
"uID": 1000358546,
"outer": [
{
"inner": [
{
"t": "PUSH",
"etc": "FEEDBACK"
},
{
"t": "SMS",
"etc": "FEEDBACK"
}
]
},
{
"inner": [
{
"t": "PUSH",
"etc": "MARKETING"
},
{
"t": "EMAIL",
"etc": "MARKETING"
}
]
},
{
"inner": [
{
"t": "SOC_VK",
"etc": "ORDER_STATUS"
}
]
}
]
}