如何使用Jolt操作过滤无first_name、last_name、email的external_id?
Jolt过滤不含指定字段的用户记录
要筛选出users数组中同时不存在first_name、last_name、email三个字段的记录(仅保留external_id),可以通过嵌套条件匹配的Shift操作实现,具体方案如下:
Jolt转换规范
[ { "operation": "shift", "spec": { "*": { "users": { "*": { "@(2,first_name)": { "": { "@(2,last_name)": { "": { "@(2,email)": { "": { "@(2)": "[&6]" } } } } } } } } } } } ]
操作说明
- 逐层遍历输入的外层数组、
users子数组的每个用户对象 - 通过
@(2,字段名)向上两层(当前用户对象)检查字段是否存在,仅当三个目标字段均不存在(匹配空值"")时,才将整个用户对象映射到结果数组 [&6]用于定位结果数组的索引,保证输出结构符合预期- 无需额外去重操作,符合条件的记录只会被映射一次
输入输出验证
输入JSON
[ { "users": [ { "external_id": "aaa", "first_name": "john", "last_name": "doe", "email": "johndoe@gmail.com" }, { "external_id": "bbb" }, { "external_id": "ccc" } ], "message": "success" } ]
输出JSON
[ { "external_id": "bbb" }, { "external_id": "ccc" } ]
内容的提问来源于stack exchange,提问作者Vedha Gnana Guru Saravanan
相关产品推荐
相关产品推荐

