JOLT Transformation实现字符串前导零移除的可行性咨询
实现可行性结论
完全可以通过JOLT Transformation完成目标转换,无需编写自定义转换逻辑,依托JOLT内置的字符串处理能力即可覆盖两类输入场景的前导零移除需求,且不会误删字符串中任意非前导位置的零字符。
具体实现方案
核心依托JOLT的modify-overwrite-beta转换能力,调用内置的ltrim函数完成左侧字符裁剪,规则编写逻辑如下:
- 定位输入JSON中需要处理的
number字段值 - 通过
ltrim函数从字符串左侧开始,连续移除所有匹配"0"的字符,直到遇到第一个非零字符为止 - 将处理后的结果重新写回
number字段
对应的完整JOLT规则如下:
[ { "operation": "modify-overwrite-beta", "spec": { "number": "=ltrim(@(1,number), '0')" } } ]
匹配效果验证
- 对第一类输入(
number值为0000000000068908):规则会移除开头连续12个零,最终输出68908,和预期结果完全一致 - 对第二类输入(
number值为0012000000034458):规则仅移除开头连续2个零,保留字符串中间的所有零字符,最终输出12000000034458,符合预期
注意:该规则仅裁剪字符串最左侧的连续零,不会对字符串中间、末尾位置的零做任何修改,比如当输入的number值为
1000200时,输出结果保持1000200不变,不会出现误删的情况。
内容的提问来源于stack exchange,提问作者roland
相关产品推荐
相关产品推荐

