如何使用JOLT的left/rightpad对动态字段执行填充操作
正确JOLT动态字符串填充方案
问题分析
你当前的JOLT配置失效是因为路径引用错误:原配置中@(2,string)指向的是根节点下的string字段,但实际目标字段在input.string下,层级对应关系错误导致无法获取值,最终输出空字段。
解决配置
根据需求不同,提供两种可行方案:
方案1:保留原输入结构,新增填充字段到指定节点
[ { "operation": "modify-overwrite-beta", "spec": { "rightPad": { "basic4": "=rightPad(@(3,input.string), 30, 'X')" } } } ]
- 路径说明:
@(3,input.string)表示从当前节点(rightPad.basic4)向上回溯3层到根节点,再定位到input.string获取动态值。 - 若需要左填充,将
rightPad替换为leftPad即可。
方案2:在原输入节点内新增填充字段
如果希望填充后的字段和原string同层级,可使用以下配置:
[ { "operation": "modify-overwrite-beta", "spec": { "input": { "paddedString": "=rightPad(@(1,string), 30, 'X')" } } } ]
- 路径说明:
@(1,string)表示从当前节点(input.paddedString)向上回溯1层到input节点,直接获取同级的string值。
示例输出(方案1)
{ "input" : { "string" : "the QuIcK brOwn fox" }, "rightPad" : { "basic4" : "the QuIcK brOwn foxXXXXXXXXXXX" } }
内容的提问来源于stack exchange,提问作者Aziz R.
相关产品推荐
相关产品推荐

