Jolt转换需求:依据数组匹配设置addedToMain布尔值
问题描述
需要处理两个数组:
- 分层数组
OrganisationUnitsSub - 扁平数组
OrganisationUnitsMain
基于globalUnitId检查分层数组中的每个条目是否存在于扁平数组中:
- 若存在,将该条目的
addedToMain字段设为true - 若不存在,设为
false
输入示例
{ "OrganisationUnitsSub": { "organisationUnits": [ { "globalUnitId": "1323224", "childOrganizationUnits": [ { "globalUnitId": "14243245", "childOrganizationUnits": [ { "globalUnitId": "235215" } ] } ] } ] }, "OrganisationUnitsMain": { "organisationUnits": [ { "globalUnitId": "1323224" } ] } }
已尝试的Jolt转换规则
[ { "operation": "shift", "spec": { "OrganisationUnitsSub": { "organisationUnits": { "*": { "globalUnitId": "Sub.units[&1].globalUnitId", "childOrganizationUnits": { "*": { "globalUnitId": "Sub.units[&3].childUnits[&1].globalUnitId", "childOrganizationUnits": { "*": { "globalUnitId": "Sub.units[&5].childUnits[&3].childUnits[&1].globalUnitId" } } } } } } }, "OrganisationUnitsMain": { "organisationUnits": { "*": { "globalUnitId": "Main.units[&1].globalUnitId" } } } } }, { "operation": "modify-default-beta", "spec": { "Sub": { "units": { "*": { "addedToMain": false, "childUnits": { "*": { "addedToMain": false, "childUnits": { "*": { "addedToMain": false } } } } } } } } }, { "operation": "modify-overwrite-beta", "spec": { "Sub": { "units": { "*": { "addedToMain": "=if(=false, @(1,globalUnitId), @(2,Main.units[&1].globalUnitId), true, false)", "childUnits": { "*": { "addedToMain": "=if(=false, @(1,globalUnitId), @(3,Main.units[&3].globalUnitId), true, false)", "childUnits": { "*": { "addedToMain": "=if(=false, @(1,globalUnitId), @(4,Main.units[&5].globalUnitId), true, false)" } } } } } } } } }, { "operation": "shift", "spec": { "Sub": { "units": { "*": { "globalUnitId": "OrganisationUnitsSub.organisationUnits[&1].globalUnitId", "addedToMain": "OrganisationUnitsSub.organisationUnits[&1].addedToMain", "childUnits": { "*": { "globalUnitId": "OrganisationUnitsSub.organisationUnits[&3].childOrganizationUnits[&1].globalUnitId", "addedToMain": "OrganisationUnitsSub.organisationUnits[&3].childOrganizationUnits[&1].addedToMain", "childUnits": { "*": { "globalUnitId": "OrganisationUnitsSub.organisationUnits[&5].childOrganizationUnits[&3].childOrganizationUnits[&1].globalUnitId", "addedToMain": "OrganisationUnitsSub.organisationUnits[&5].childOrganizationUnits[&3].childOrganizationUnits[&1].addedToMain" } } } } } } } } } ]
期望输出
{ "OrganisationUnitsSub" : { "organisationUnits" : [ { "globalUnitId" : "1323224", "addedToMain" : true, "childOrganizationUnits" : [ { "globalUnitId" : "14243245", "addedToMain" : false, "childOrganizationUnits" : [ { "globalUnitId" : "235215", "addedToMain" : false } ] } ] } ] } }
内容的提问来源于stack exchange,提问作者Nick
相关产品推荐
相关产品推荐

