如何使用JOLT Transformation移除数组字符串开头的^字符
解决JOLT移除数组元素开头
^符号的问题 你的原Spec问题在于用split和join处理整个数组,而非遍历数组内每个元素单独操作。JOLT的modify-overwrite-beta支持对数组元素逐个应用字符串替换,用replace函数结合正则即可实现需求。
正确的JOLT Spec
[ { "operation": "modify-overwrite-beta", "spec": { "scores": { "*": "=replace(@(1), '^\\^', '')" } } } ]
关键说明
scores.*:遍历scores数组中的每一个元素=replace(@(1), '^\\^', ''):对当前遍历的数组元素(@(1)指代当前元素)执行替换:- 正则
^\^专门匹配字符串开头的^符号(第一个^是正则的行首锚定,第二个\^是转义后的字面量^) - 替换为空字符串,精准移除目标符号
- 正则
验证结果
输入你提供的示例JSON后,输出完全符合期望:
{ "scores" : [ "aaaa", "bbbb", "cccc", "dddd", "eeee" ] }
内容的提问来源于stack exchange,提问作者Lutz
相关产品推荐
相关产品推荐

