JOLT转换需求:从元素提取信息添加至Header
JOLT转换方案实现指定JSON结构调整
输入JSON
{ "trans-details": [ { "customernum": "41700013", "crmordernum": "SO-000048949", "customerordernum": "Over delivery BRAZI", "itemnumber": "A0002309953", "status": 3, "pagecount": 64, "orderstatus": 3, "requestedqty": 0 }, { "customernum": "41700013", "crmordernum": "SO-000049948", "customerordernum": "Over delivery test ZA", "itemnumber": "A0002309911", "status": 3, "pagecount": 64, "orderstatus": 3, "requestedqty": 0 } ] }
期望输出JSON
{ "Header": { "Pagenumber": "1", "Countryid": "7002", "First Page": "true", "Last Page": "false", "countryId": 675, "dealerNumber": 675000, "Total Pages": "64" }, "TRANS-DETAILS": [ { "customernum": "41700013", "crmordernum": "SO-000048949", "customerordernum": "Over delivery BRAZI", "itemnumber": "A0002309953", "status": 3, "orderstatus": 3, "requestedqty": 0 }, { "customernum": "41700013", "crmordernum": "SO-000048949", "customerordernum": "Over delivery BRAZI", "itemnumber": "A0002309953", "status": 3, "orderstatus": 3, "requestedqty": 0 } ] }
转换要求
- 新增
Header对象,填充指定固定字段值,其中Total Pages取值自原数组元素的pagecount(假设所有元素pagecount值一致) - 原数组重命名为
TRANS-DETAILS,且移除数组内每个元素的pagecount字段 - 匹配示例输出,将数组第二个元素替换为第一个元素的副本
JOLT转换规格
[ { "operation": "shift", "spec": { "trans-details": { "*": { "@(0,pagecount)": "Header.Total Pages", "customernum": "TRANS-DETAILS[&1].customernum", "crmordernum": "TRANS-DETAILS[&1].crmordernum", "customerordernum": "TRANS-DETAILS[&1].customerordernum", "itemnumber": "TRANS-DETAILS[&1].itemnumber", "status": "TRANS-DETAILS[&1].status", "orderstatus": "TRANS-DETAILS[&1].orderstatus", "requestedqty": "TRANS-DETAILS[&1].requestedqty" } } } }, { "operation": "modify-overwrite-beta", "spec": { "Header": { "Pagenumber": "1", "Countryid": "7002", "First Page": "true", "Last Page": "false", "countryId": 675, "dealerNumber": 675000, "Total Pages": "=toString" }, "TRANS-DETAILS": { "1": "@(0,0)" } } }, { "operation": "cardinality", "spec": { "Header": { "Total Pages": "ONE" } } } ]
转换说明
- Shift操作:完成数组重命名,提取
pagecount字段到Header,同时复制原数组中除pagecount外的所有字段到新数组 - Modify操作:填充
Header的固定字段值,将Total Pages转为字符串类型,同时按照示例要求将数组第二个元素替换为第一个元素的副本 - Cardinality操作:确保
Header中的Total Pages只保留一个值,避免因多个元素提取导致的数组类型问题
内容的提问来源于stack exchange,提问作者SATHK
相关产品推荐
相关产品推荐

