Jolt转换技术求助:拼接JSON数组元素并重组输出结构
Jolt转换解决方案
输入JSON
[ { "firstName": "Fname1", "lastName": "Lname1", "state": "PA" }, { "firstName": "Fname2", "lastName": "Lname2", "state": "VA" }, { "firstName": "Fname3", "lastName": "Lname3", "state": "CA" } ]
期望输出JSON
{ "names": [ "Fname1 Lname1", "Fname2 Lname2", "Fname3 Lname3" ], "states": [ "PA", "VA", "CA" ] }
Jolt转换规范
通过shift和modify-overwrite-beta组合操作实现转换,具体规范如下:
[ { "operation": "shift", "spec": { "*": { "firstName": "namesTemp[&1].first", "lastName": "namesTemp[&1].last", "state": "states[&1]" } } }, { "operation": "modify-overwrite-beta", "spec": { "namesTemp": { "*": "=concat(@(1.first), ' ', @(1.last))" } } }, { "operation": "shift", "spec": { "namesTemp": "names", "states": "states" } } ]
转换逻辑说明
- 第一步(shift):将原数组中每个对象的
firstName、lastName暂存到namesTemp数组的对应位置,同时提取state到states数组。 - 第二步(modify-overwrite-beta):遍历
namesTemp数组,用concat函数拼接每个元素的first和last字段,生成带空格的完整姓名。 - 第三步(shift):将处理后的
namesTemp重命名为names,保留states数组,得到最终目标结构。
内容的提问来源于stack exchange,提问作者ara6969
相关产品推荐
相关产品推荐

