Jolt规则优化需求:扩展转换步骤并完善默认条目配置
Jolt转换规则优化方案
输入JSON
{ "iban": "IR970130100000000000001399", "paymentCode": "124" }
期望输出JSON
{ "parameters": [ { "name": "P_IBAN", "value": "IR970130100000000000001399" }, { "name": "P_PAYMENTCODE", "value": "124" }, { "name": "P_RQID", "value": "4f2ba174-690f-4d41-9bcc-b958789fe6d7" }, { "name": "P_TYPEX", "value": "1" }, { "name": "P_BIC", "value": "1" } ], "requestID": "RequestID", "callType": "Reader", "encoding": "ASCII" }
转换需求
- 在default规则中添加多个固定参数条目
- 为输入字段名添加
P_前缀 - 将带前缀的字段名转为大写
现有规则问题
当前规则仅添加了单个固定参数,且固定参数的name设置有误(写成了P_RQUD,需求是P_RQID),同时未处理TYPEX和BIC两个固定参数,需要调整优化。
优化后的Jolt规则
[ // 统一添加所有固定参数和顶层字段 { "operation": "default", "spec": { "_fixedParams": { "RQID": "4f2ba174-690f-4d41-9bcc-b958789fe6d7", "TYPEX": "1", "BIC": "1" }, "callType": "Reader", "encoding": "ASCII", "requestID": "RequestID" } }, // 映射输入字段和固定参数到parameters列表,同时添加P_前缀 { "operation": "shift", "spec": { "*": { "@": "parameters[#2].value", "#P_&": "parameters[#2].name" }, "_fixedParams": { "*": { "@": "parameters[#2].value", "#P_&": "parameters[#2].name" } }, "callType": "&", "encoding": "&", "requestID": "&" } }, // 统一将name字段转为大写 { "operation": "modify-overwrite-beta", "spec": { "parameters": { "*": { "name": "=toUpper" } } } } ]
规则说明
- default阶段:用
_fixedParams临时节点集中存放所有固定参数,同时一次性设置顶层的三个固定字段,减少重复操作。 - shift阶段:
- 原始输入字段直接通过
#P_&拼接前缀,映射到parameters的name,字段值对应value。 - 固定参数同样按
P_字段名的格式映射到列表,值对应value。 - 直接保留顶层字段,无需后续再处理。
- 原始输入字段直接通过
- modify阶段:把
parameters里所有条目的name统一转成大写,确保格式完全符合需求。
内容的提问来源于stack exchange,提问作者Mehdi Abniki
相关产品推荐
相关产品推荐

