Jolt技术需求:基于递增键值拼接生成完整姓名
Jolt 键值递增场景下的姓名拼接方案
需求说明
需要将输入JSON中同组的PAFrstNm/PALastNm、PPFrstNm/PPLastNm、PPFrstNm1/PPLastNm1这类带或不带数字后缀的姓名字段,对应拼接为PAfullname、PPfullname、PPfullname1字段,同时将每组信息合并为单个对象并保留policy字段。
Jolt 转换规范
[ { "operation": "shift", "spec": { "*": { "policy": "@(1,policy).policy", "*FrstNm*": { "$(0,1)": "@(2,policy).&.first" }, "*LastNm*": { "$(0,1)": "@(2,policy).&.last" } } } }, { "operation": "modify-overwrite-beta", "spec": { "Name": { "*": { "fullname": "=concat(@(1.first), ' ', @(1.last))" } } } }, { "operation": "shift", "spec": { "Name": { "*": { "policy": "[#2].policy", "fullname": "[#2].&(1,0)fullname" } } } } ]
转换步骤说明
- Shift 分组:按
policy值(此处为Name)和字段前缀(如PA、PP、PP1)对所有姓名字段进行分组,将名和姓分别存入对应分组的first和last字段。 - Modify 拼接:对每个分组的
first和last字段进行字符串拼接,生成fullname字段。 - Shift 整理输出:将每个分组的
policy和拼接好的fullname字段整理为最终的数组对象,自动匹配前缀生成对应的XXfullname键名。
输入示例
[ { "policy": "Name", "PAFrstNm": "John" }, { "PALastNm": "Jammy", "policy": "Name" }, { "policy": "Name", "PPFrstNm": "sam" }, { "policy": "Name", "PPLastNm": "jim" }, { "policy": "Name", "PPFrstNm1": "jun" }, { "PPLastNm1": "san", "policy": "Name" } ]
输出示例
[ { "PAfullname": "John Jammy", "policy": "Name" }, { "PPfullname": "sam jim", "policy": "Name" }, { "PPfullname1": "jun san", "policy": "Name" } ]
内容的提问来源于stack exchange,提问作者Manimaran Dhandapani
相关产品推荐
相关产品推荐

