I have 2 arrays that I want to merge. The first array is a layered one, the second is a flat array. I want to use data from the second array as input for the first array.
This is an example of the input:
{
"OrganisationUnitsMain": {
"organisationUnits": [
{
"globalUnitId": "1323224",
"parentGlobalUnitId": "42133",
"boNumber": 2132323,
"organisationalUnitName": "Bakery",
"status": "ACTIVE",
"level": 2,
"childOrganizationUnits": [
{
"globalUnitId": "14243245",
"parentGlobalUnitId": "142424",
"boNumber": 13241,
"organisationalUnitName": "Pizza",
"status": "ACTIVE",
"level": 3,
"childOrganizationUnits": [
{
"globalUnitId": "235215",
"parentGlobalUnitId": "324565",
"boNumber": 334401,
"organisationalUnitName": "Banana",
"status": "ACTIVE",
"level": 4
}
]
}
]
}
]
},
"OrganisationUnitsSub": {
"organisationUnits": [
{
"globalUnitId": "1323224",
"parentGlobalUnitId": "23455",
"boNumber": 23454325,
"organisationalUnitName": "Bakery",
"status": "ACTIVE",
"level": 2,
"addedToMain": true
}
]
}
}
This is what the output should look like:
{
"OrganisationUnitsMain" : {
"organisationUnits" : [ {
"globalUnitId" : "1323224",
"parentGlobalUnitId" : "42133",
"boNumber" : 2132323,
"organisationalUnitName" : "Bakery",
"status" : "ACTIVE",
"level" : 2,
"addedToMain" : "false",
"childOrganizationUnits" : [ {
"globalUnitId" : "14243245",
"parentGlobalUnitId" : "142424",
"boNumber" : 13241,
"organisationalUnitName" : "Pizza",
"status" : "ACTIVE",
"level" : 3,
"childOrganizationUnits" : [ {
"globalUnitId" : "235215",
"parentGlobalUnitId" : "324565",
"boNumber" : 334401,
"organisationalUnitName" : "Banana",
"status" : "ACTIVE",
"level" : 4
} ]
} ]
} ]
}
}
This is the jolt I tried so far:
[
{
"operation": "shift",
"spec": {
"OrganisationUnitsMain": {
"organisationUnits": {
"*": {
"globalUnitId": "Main.units[&1].globalUnitId",
"parentGlobalUnitId": "Main.units[&1].parentGlobalUnitId",
"boNumber": "Main.units[&1].boNumber",
"organisationalUnitName": "Main.units[&1].organisationalUnitName",
"status": "Main.units[&1].status",
"level": "Main.units[&1].level",
"childOrganizationUnits": {
"*": {
"globalUnitId": "Main.units[&3].childUnits[&1].globalUnitId",
"parentGlobalUnitId": "Main.units[&3].childUnits[&1].parentGlobalUnitId",
"boNumber": "Main.units[&3].childUnits[&1].boNumber",
"organisationalUnitName": "Main.units[&3].childUnits[&1].organisationalUnitName",
"status": "Main.units[&3].childUnits[&1].status",
"level": "Main.units[&3].childUnits[&1].level",
"childOrganizationUnits": {
"*": {
"globalUnitId": "Main.units[&5].childUnits[&3].childUnits[&1].globalUnitId",
"parentGlobalUnitId": "Main.units[&5].childUnits[&3].childUnits[&1].parentGlobalUnitId",
"boNumber": "Main.units[&5].childUnits[&3].childUnits[&1].boNumber",
"organisationalUnitName": "Main.units[&5].childUnits[&3].childUnits[&1].organisationalUnitName",
"status": "Main.units[&5].childUnits[&3].childUnits[&1].status",
"level": "Main.units[&5].childUnits[&3].childUnits[&1].level"
}
}
}
}
}
}
},
"OrganisationUnitsSub": {
"organisationUnits": {
"*": {
"globalUnitId": "Sub.units[&1].globalUnitId",
"addedToClic": "Sub.units[&1].addedToClic"
}
}
}
}
},
{
"operation": "modify-default-beta",
"spec": {
"Main": {
"units": {
"*": {
"addedToClic": false
}
}
}
}
},
{
"operation": "modify-overwrite-beta",
"spec": {
"Main": {
"units": {
"*": {
"addedToClic": "=concat(@(1,addedToClic), @(2,Sub.units[&1].addedToClic))"
}
}
}
}
},
{
"operation": "shift",
"spec": {
"Main": {
"units": {
"*": {
"globalUnitId": "OrganisationUnitsMain.organisationUnits[&1].globalUnitId",
"parentGlobalUnitId": "OrganisationUnitsMain.organisationUnits[&1].parentGlobalUnitId",
"boNumber": "OrganisationUnitsMain.organisationUnits[&1].boNumber",
"organisationalUnitName": "OrganisationUnitsMain.organisationUnits[&1].organisationalUnitName",
"status": "OrganisationUnitsMain.organisationUnits[&1].status",
"level": "OrganisationUnitsMain.organisationUnits[&1].level",
"addedToClic": "OrganisationUnitsMain.organisationUnits[&1].addedToClic",
"childUnits": {
"*": {
"globalUnitId": "OrganisationUnitsMain.organisationUnits[&3].childOrganizationUnits[&1].globalUnitId",
"parentGlobalUnitId": "OrganisationUnitsMain.organisationUnits[&3].childOrganizationUnits[&1].parentGlobalUnitId",
"boNumber": "OrganisationUnitsMain.organisationUnits[&3].childOrganizationUnits[&1].boNumber",
"organisationalUnitName": "OrganisationUnitsMain.organisationUnits[&3].childOrganizationUnits[&1].organisationalUnitName",
"status": "OrganisationUnitsMain.organisationUnits[&3].childOrganizationUnits[&1].status",
"level": "OrganisationUnitsMain.organisationUnits[&3].childOrganizationUnits[&1].level",
"addedToClic": "OrganisationUnitsMain.organisationUnits[&3].childOrganizationUnits[&1].addedToClic",
"childUnits": {
"*": {
"globalUnitId": "OrganisationUnitsMain.organisationUnits[&5].childOrganizationUnits[&3].childOrganizationUnits[&1].globalUnitId",
"parentGlobalUnitId": "OrganisationUnitsMain.organisationUnits[&5].childOrganizationUnits[&3].childOrganizationUnits[&1].parentGlobalUnitId",
"boNumber": "OrganisationUnitsMain.organisationUnits[&5].childOrganizationUnits[&3].childOrganizationUnits[&1].boNumber",
"organisationalUnitName": "OrganisationUnitsMain.organisationUnits[&5].childOrganizationUnits[&3].childOrganizationUnits[&1].organisationalUnitName",
"status": "OrganisationUnitsMain.organisationUnits[&5].childOrganizationUnits[&3].childOrganizationUnits[&1].status",
"level": "OrganisationUnitsMain.organisationUnits[&5].childOrganizationUnits[&3].childOrganizationUnits[&1].level",
"addedToClic": "OrganisationUnitsMain.organisationUnits[&5].childOrganizationUnits[&3].childOrganizationUnits[&1].addedToClic"
}
}
}
}
}
}
}
}
}
]
Eventually I want all entries in the first array to be checked on the AddedToMain. So based on the values in the second array.