求JOLT转换规则:将Others对象与x数组元素逐一合并
JOLT转换规则:合并全局对象与数组元素生成新数组
解决方案JOLT规则
[ { "operation": "shift", "spec": { "x": { "*": { "@2,Others": "&", "@": "&" } } } } ]
规则说明
- shift操作:核心用于字段的重定向与复制
x.*:遍历输入中x数组的每一个元素@2,Others:从当前数组元素的位置向上回溯两级(到根节点),获取Others对象的所有字段,并复制到当前数组元素中@:保留当前数组元素自身的sourcingSizeCode3字段,实现与Others字段的合并- 最终输出自动以合并后的数组作为根结构
输入Payload
{"Others": {"eventTime": "2024-09-05T01:50:05.861","groupArticleNumber": "IW6012","groupModelNumber": "JSO42","seasonCode": "20242","productDescriptionEN": "WINDBREAKER","subBrand": "2","brand": "11","productGroup": "26","franchiseCode": "000","businessSegment": "335","salesLine": "839","developmentType": "TN","seasonState": "A","articleCarriedOverFrom": null,"materialComposition": "100% PET-REC","mainMaterialFlag": true,"productDescEN": "WINDBREAKER","colorwayShortDescEN": "LEGTEA","keyCategory": "00009","ageGroup": "J","gender": "U","genderAge": "12","genderAgeMain": "Kids","articleLifeCycle": "50","sizePage": "J4","articleCreationSeason": "20242","articleActiveSeason": "20242","rmhProductDivision": "2","rmhProductType": "40","rmhCategory": "35","retailClass": "22335","retailSubClass": "2233540","retailDepartment": "22","retailSubDepartment": "223","rmhGender": "3"},"x": [{"sourcingSizeCode3": "550"},{"sourcingSizeCode3": "540"},{"sourcingSizeCode3": "530"},{"sourcingSizeCode3": "520"},{"sourcingSizeCode3": "510"},{"sourcingSizeCode3": "500"},{"sourcingSizeCode3": "580"},{"sourcingSizeCode3": "570"},{"sourcingSizeCode3": "560"}]}
预期输出(示例)
[ { "eventTime": "2024-09-05T01:50:05.861", "groupArticleNumber": "IW6012", "groupModelNumber": "JSO42", "seasonCode": "20242", "productDescriptionEN": "WINDBREAKER", "subBrand": "2", "brand": "11", "productGroup": "26", "franchiseCode": "000", "businessSegment": "335", "salesLine": "839", "developmentType": "TN", "seasonState": "A", "articleCarriedOverFrom": null, "materialComposition": "100% PET-REC", "mainMaterialFlag": true, "productDescEN": "WINDBREAKER", "colorwayShortDescEN": "LEGTEA", "keyCategory": "00009", "ageGroup": "J", "gender": "U", "genderAge": "12", "genderAgeMain": "Kids", "articleLifeCycle": "50", "sizePage": "J4", "articleCreationSeason": "20242", "articleActiveSeason": "20242", "rmhProductDivision": "2", "rmhProductType": "40", "rmhCategory": "35", "retailClass": "22335", "retailSubClass": "2233540", "retailDepartment": "22", "retailSubDepartment": "223", "rmhGender": "3", "sourcingSizeCode3": "550" }, { "eventTime": "2024-09-05T01:50:05.861", "groupArticleNumber": "IW6012", "groupModelNumber": "JSO42", "seasonCode": "20242", "productDescriptionEN": "WINDBREAKER", "subBrand": "2", "brand": "11", "productGroup": "26", "franchiseCode": "000", "businessSegment": "335", "salesLine": "839", "developmentType": "TN", "seasonState": "A", "articleCarriedOverFrom": null, "materialComposition": "100% PET-REC", "mainMaterialFlag": true, "productDescEN": "WINDBREAKER", "colorwayShortDescEN": "LEGTEA", "keyCategory": "00009", "ageGroup": "J", "gender": "U", "genderAge": "12", "genderAgeMain": "Kids", "articleLifeCycle": "50", "sizePage": "J4", "articleCreationSeason": "20242", "articleActiveSeason": "20242", "rmhProductDivision": "2", "rmhProductType": "40", "rmhCategory": "35", "retailClass": "22335", "retailSubClass": "2233540", "retailDepartment": "22", "retailSubDepartment": "223", "rmhGender": "3", "sourcingSizeCode3": "540" }, // 其余元素按相同逻辑合并 { "eventTime": "2024-09-05T01:50:05.861", "groupArticleNumber": "IW6012", "groupModelNumber": "JSO42", "seasonCode": "20242", "productDescriptionEN": "WINDBREAKER", "subBrand": "2", "brand": "11", "productGroup": "26", "franchiseCode": "000", "businessSegment": "335", "salesLine": "839", "developmentType": "TN", "seasonState": "A", "articleCarriedOverFrom": null, "materialComposition": "100% PET-REC", "mainMaterialFlag": true, "productDescEN": "WINDBREAKER", "colorwayShortDescEN": "LEGTEA", "keyCategory": "00009", "ageGroup": "J", "gender": "U", "genderAge": "12", "genderAgeMain": "Kids", "articleLifeCycle": "50", "sizePage": "J4", "articleCreationSeason": "20242", "articleActiveSeason": "20242", "rmhProductDivision": "2", "rmhProductType": "40", "rmhCategory": "35", "retailClass": "22335", "retailSubClass": "2233540", "retailDepartment": "22", "retailSubDepartment": "223", "rmhGender": "3", "sourcingSizeCode3": "560" } ]
内容的提问来源于stack exchange,提问作者jitendra rawat
相关产品推荐
相关产品推荐

