使用JOLT修改数组字符串仅保留后四位是否必须用Shift操作?
JOLT实现数组字符串脱敏(保留最后四位)——无需Shift操作
不需要依赖Shift操作,用modify-overwrite-beta操作结合字符串函数就能实现你的需求。以下是具体的JOLT规范和说明:
示例输入
{ "card" : [ "111111111", "222222222", "333333333", "444444444" ] }
期望输出
{ "card" : [ "***1111", "***2222", "***3333", "***4444" ] }
JOLT转换规范
[ { "operation": "modify-overwrite-beta", "spec": { "card": { "*": "=concat('***', @(1,substring(-4)))" } } } ]
规范说明
modify-overwrite-beta操作:核心操作,允许直接修改现有字段的值,无需像Shift那样重新构建整个JSON结构,刚好适配你的批量修改需求。card字段定位:直接指定要处理的目标数组字段。*通配符:匹配数组内的每一个元素,实现批量处理逻辑。- 字符串处理逻辑:
substring(-4):截取当前字符串的最后四位(如果你的JOLT版本不支持负数索引,可根据原字符串长度调整参数,比如原字符串是9位,就用substring(5))。concat('***', ...):将固定前缀***与截取后的四位字符串拼接,生成最终脱敏格式。
内容的提问来源于stack exchange,提问作者sizzz
相关产品推荐
相关产品推荐

