如何通过Jolt按顺序拼接三个字符串实现全名格式化
Jolt 多字段拼接解决方案
需求说明
将输入中带PA/PP前缀的「名」「中间名」「姓」字段,按名+中间名+姓的顺序拼接为全名,同时保留policy字段。
示例输入
[ { "PA_FIRST_NAME": "John", "PP_MIDDLE_NAME": "Michael", "PA_LAST_NAME": "Doe", "policy": "PL-001" }, { "PP_FIRST_NAME": "Jane", "PA_LAST_NAME": "Smith", "policy": "PL-002" } ]
正确Jolt转换规则
[ { "operation": "shift", "spec": { "*": { "*_FIRST_NAME": "[&1].firstName", "*_MIDDLE_NAME": "[&1].middleName", "*_LAST_NAME": "[&1].lastName", "policy": "[&1].policy" } } }, { "operation": "modify-overwrite-beta", "spec": { "*": { "fullName": "=concat(@(1.firstName), @(1.middleName != null ? ' ' + @(1.middleName) : ''), @(1.lastName != null ? ' ' + @(1.lastName) : ''))" } } }, { "operation": "remove", "spec": { "*": { "firstName": "", "middleName": "", "lastName": "" } } } ]
转换后输出
[ { "policy": "PL-001", "fullName": "John Michael Doe" }, { "policy": "PL-002", "fullName": "Jane Smith" } ]
规则拆解
- Shift阶段:把所有PA/PP前缀的字段统一映射为无前缀的
firstName/middleName/lastName,同步保留policy字段,简化后续拼接逻辑。 - Modify阶段:用
concat结合条件判断拼接全名,避免中间名或姓为空时出现多余空格。 - Remove阶段:清理临时生成的中间字段,只保留最终需要的
policy和fullName。
内容的提问来源于stack exchange,提问作者Manimaran Dhandapani
相关产品推荐
相关产品推荐

