寻求中间名首字符合规提取的Jolt配置方案
Jolt配置实现中间名字段首字符提取与规则校验
需求说明
处理JSON中的middleName字段,仅提取首字符;若首字符为大小写英文字母则保留该字符,否则返回null。
Jolt配置代码
[ // 提取中间名首字符 { "operation": "modify-overwrite-beta", "spec": { "middleName": "=substring(@(1), 0, 1)" } }, // 校验首字符是否为大小写字母,不符合则设为null { "operation": "modify-overwrite-beta", "spec": { "middleName": { "=match(., '^[A-Za-z]$')": ["@(1)", null] } } } ]
配置解释
- 提取首字符:通过
modify-overwrite-beta操作调用substring函数,截取middleName的第0到1位字符(即首字符),直接覆盖原字段值。 - 规则校验:再次使用
modify-overwrite-beta操作,通过match函数匹配正则表达式^[A-Za-z]$(精准匹配单个大小写英文字母):- 匹配成功时,保留当前的首字符值(
@(1)引用当前字段的现有值); - 匹配失败时,将
middleName设为null。
- 匹配成功时,保留当前的首字符值(
测试示例
| 输入JSON | 输出JSON |
|---|---|
{"middleName": "M."} | {"middleName": "M"} |
{"middleName": "$M"} | {"middleName": null} |
{"middleName": "M$"} | {"middleName": "M"} |
{"middleName": ".M"} | {"middleName": null} |
{"middleName": "Mary"} | {"middleName": "M"} |
{"middleName": "1Mary"} | {"middleName": null} |
内容的提问来源于stack exchange,提问作者Mohan
相关产品推荐
相关产品推荐

