I have a JSON from source and I am trying to write a JOLT to flatten this data and convert it in to records so that I can insert it in to a Table.
I have already written a JOLT by referring to my previous queries, but unbale to get desired output.
Input JSON
{
"CustomerMaster": {
"Rootnode": {
"KUNNR": "0000000199",
"NAME1": "COOP Sverige AB",
"LAND1": "SE",
"SalesArea": [
{
"VKORG": "1301",
"VTWEG": "00",
"SPART": "00",
"PartnerFunction": [
{
"PARVW": "WE",
"PARZA": "000",
"KUNN2": "0000000199"
},
{
"PARVW": "YP",
"PARZA": "000",
"KUNN2": "0087000579"
},
{
"PARVW": "AG",
"PARZA": "000",
"KUNN2": "0000000199"
},
{
"PARVW": "RE",
"PARZA": "000",
"KUNN2": "0000000199"
},
{
"PARVW": "RG",
"PARZA": "000",
"KUNN2": "0000000199"
},
{
"PARVW": "ZP",
"PARZA": "000",
"KUNN2": "0000000199"
},
{
"PARVW": "Z0",
"PARZA": "000",
"KUNN2": "0000078178"
}
]
},
{
"VKORG": "1301",
"VTWEG": "10",
"SPART": "00",
"Indicator": {
"IsPlanAccount": "X",
"IsDistributionCenter": "X"
},
"PartnerFunction": [
{
"PARVW": "YP",
"PARZA": "000",
"KUNN2": "0087000579"
},
{
"PARVW": "WE",
"PARZA": "000",
"KUNN2": "0000000199"
},
{
"PARVW": "AG",
"PARZA": "000",
"KUNN2": "0000000199"
},
{
"PARVW": "ZP",
"PARZA": "000",
"KUNN2": "0000000199"
},
{
"PARVW": "RG",
"PARZA": "000",
"KUNN2": "0000000199"
},
{
"PARVW": "RE",
"PARZA": "000",
"KUNN2": "0000000199"
},
{
"PARVW": "Z0",
"PARZA": "000",
"KUNN2": "0000078178"
}
]
},
{
"VKORG": "1330",
"VTWEG": "00",
"SPART": "00",
"PartnerFunction": [
{
"PARVW": "ZP",
"PARZA": "000",
"KUNN2": "0090000100"
},
{
"PARVW": "WE",
"PARZA": "000",
"KUNN2": "0000000199"
},
{
"PARVW": "AG",
"PARZA": "000",
"KUNN2": "0000000199"
},
{
"PARVW": "RG",
"PARZA": "000",
"KUNN2": "0000000199"
},
{
"PARVW": "RE",
"PARZA": "000",
"KUNN2": "0000000199"
}
]
}
]
}
}
}
Desired Output:
[ {
"KUNNR" : "0000000199",
"NAME1" : "COOP Sverige AB",
"LAND1" : "SE",
"VKORG" : "1301",
"VTWEG" : "00",
"SPART" : "00",
"PARVW" : "WE",
"PARZA" : "000",
"KUNN2" : "0000000199"
}, {
"KUNNR" : "0000000199",
"NAME1" : "COOP Sverige AB",
"LAND1" : "SE",
"VKORG" : "1301",
"VTWEG" : "00",
"SPART" : "00",
"PARVW" : "YP",
"PARZA" : "000",
"KUNN2" : "0087000579"
}, {
"KUNNR" : "0000000199",
"NAME1" : "COOP Sverige AB",
"LAND1" : "SE",
"VKORG" : "1301",
"VTWEG" : "00",
"SPART" : "00",
"PARVW" : "AG",
"PARZA" : "000",
"KUNN2" : "0000000199"
}, {
"KUNNR" : "0000000199",
"NAME1" : "COOP Sverige AB",
"LAND1" : "SE",
"VKORG" : "1301",
"VTWEG" : "00",
"SPART" : "00",
"PARVW" : "RE",
"PARZA" : "000",
"KUNN2" : "0000000199"
}, {
"KUNNR" : "0000000199",
"NAME1" : "COOP Sverige AB",
"LAND1" : "SE",
"VKORG" : "1301",
"VTWEG" : "00",
"SPART" : "00",
"PARVW" : "RG",
"PARZA" : "000",
"KUNN2" : "0000000199"
}, {
"KUNNR" : "0000000199",
"NAME1" : "COOP Sverige AB",
"LAND1" : "SE",
"VKORG" : "1301",
"VTWEG" : "00",
"SPART" : "00",
"PARVW" : "ZP",
"PARZA" : "000",
"KUNN2" : "0000000199"
}, {
"KUNNR" : "0000000199",
"NAME1" : "COOP Sverige AB",
"LAND1" : "SE",
"VKORG" : "1301",
"VTWEG" : "00",
"SPART" : "00",
"PARVW" : "Z0",
"PARZA" : "000",
"KUNN2" : "0000078178"
}, {
"KUNNR" : "0000000199",
"NAME1" : "COOP Sverige AB",
"LAND1" : "SE",
"VKORG" : "1301",
"VTWEG" : "10",
"SPART" : "00",
"IsPlanAccount" : "X",
"IsDistributionCenter" : "X",
"PARVW" : "YP",
"PARZA" : "000",
"KUNN2" : "0087000579"
}, {
"KUNNR" : "0000000199",
"NAME1" : "COOP Sverige AB",
"LAND1" : "SE",
"VKORG" : "1301",
"VTWEG" : "10",
"SPART" : "00",
"IsPlanAccount" : "X",
"IsDistributionCenter" : "X",
"PARVW" : "WE",
"PARZA" : "000",
"KUNN2" : "0000000199"
}, {
"KUNNR" : "0000000199",
"NAME1" : "COOP Sverige AB",
"LAND1" : "SE",
"VKORG" : "1301",
"VTWEG" : "10",
"SPART" : "00",
"IsPlanAccount" : "X",
"IsDistributionCenter" : "X",
"PARVW" : "AG",
"PARZA" : "000",
"KUNN2" : "0000000199"
}, {
"KUNNR" : "0000000199",
"NAME1" : "COOP Sverige AB",
"LAND1" : "SE",
"VKORG" : "1301",
"VTWEG" : "10",
"SPART" : "00",
"IsPlanAccount" : "X",
"IsDistributionCenter" : "X",
"PARVW" : "ZP",
"PARZA" : "000",
"KUNN2" : "0000000199"
}, {
"KUNNR" : "0000000199",
"NAME1" : "COOP Sverige AB",
"LAND1" : "SE",
"VKORG" : "1301",
"VTWEG" : "10",
"SPART" : "00",
"IsPlanAccount" : "X",
"IsDistributionCenter" : "X",
"PARVW" : "RG",
"PARZA" : "000",
"KUNN2" : "0000000199"
}, {
"KUNNR" : "0000000199",
"NAME1" : "COOP Sverige AB",
"LAND1" : "SE",
"VKORG" : "1301",
"VTWEG" : "10",
"SPART" : "00",
"IsPlanAccount" : "X",
"IsDistributionCenter" : "X",
"PARVW" : "RE",
"PARZA" : "000",
"KUNN2" : "0000000199"
}, {
"KUNNR" : "0000000199",
"NAME1" : "COOP Sverige AB",
"LAND1" : "SE",
"VKORG" : "1301",
"VTWEG" : "10",
"SPART" : "00",
"IsPlanAccount" : "X",
"IsDistributionCenter" : "X",
"PARVW" : "Z0",
"PARZA" : "000",
"KUNN2" : "0000078178"
}, {
"KUNNR" : "0000000199",
"NAME1" : "COOP Sverige AB",
"LAND1" : "SE",
"VKORG" : "1330",
"VTWEG" : "00",
"SPART" : "00",
"PARVW" : "ZP",
"PARZA" : "000",
"KUNN2" : "0090000100"
}, {
"KUNNR" : "0000000199",
"NAME1" : "COOP Sverige AB",
"LAND1" : "SE",
"VKORG" : "1330",
"VTWEG" : "00",
"SPART" : "00",
"PARVW" : "WE",
"PARZA" : "000",
"KUNN2" : "0000000199"
}, {
"KUNNR" : "0000000199",
"NAME1" : "COOP Sverige AB",
"LAND1" : "SE",
"VKORG" : "1330",
"VTWEG" : "00",
"SPART" : "00",
"PARVW" : "AG",
"PARZA" : "000",
"KUNN2" : "0000000199"
}, {
"KUNNR" : "0000000199",
"NAME1" : "COOP Sverige AB",
"LAND1" : "SE",
"VKORG" : "1330",
"VTWEG" : "00",
"SPART" : "00",
"PARVW" : "RG",
"PARZA" : "000",
"KUNN2" : "0000000199"
}, {
"KUNNR" : "0000000199",
"NAME1" : "COOP Sverige AB",
"LAND1" : "SE",
"VKORG" : "1330",
"VTWEG" : "00",
"SPART" : "00",
"PARVW" : "RE",
"PARZA" : "000",
"KUNN2" : "0000000199"
} ]
JOLT Written so far
[
{
"operation": "shift",
"spec": {
"CustomerMaster": {
"Rootnode": {
"*": "else1.&",
"SalesArea": {
"*": {
"*": "&1.else2.&",
"Indicator": {
"*": {
"*": "&2.else3.&"
}
},
"PartnerFunction": {
"*": {
"*": "&4.&3.&2[&1].&"
}
}
}
}
}
}
}
},
{
"operation": "shift",
"spec": {
"*": {
"PartnerFunction": {
"*": {
"@4,else1": { "*": "&4[&1].&" },
"@3,else2": { "*": "&4[&1].&" },
"@2,else3": { "*": "&4[&1].&" },
"*": "&4&3[&1].&"
}
}
}
}
},
{ //get rid of the outermost keys
"operation": "shift",
"spec": {
"*": {
"*": ""
}
}
}
]
I am not getting desired output using the JOLT provided above and need your help to write a JOLT to get desired output.