如何编写JOLT规格移除匹配指定字符串的数组元素
JOLT规格实现过滤指定元素
需求说明
移除输入数组中包含"TemplateProcessGroupName": "BBBB"的元素,保留其余元素。
JOLT转换规格
[ { "operation": "shift", "spec": { "*": { "TemplateProcessGroupName": { "BBBB": null, "*": { "@2": "[#3]" } } } } } ]
规格解释
- shift操作:负责重新构造JSON结构,实现元素筛选
*:遍历输入数组中的每一个元素- 针对每个元素的
TemplateProcessGroupName字段做分支判断:- 当值为
BBBB时,映射为null,直接丢弃该元素 - 当值为其他任意内容时,通过
@2引用当前元素的完整数据,并用[#3]将其放入输出数组的对应索引位置(#3表示向上三级的索引,对应原数组的元素索引)
- 当值为
输入输出示例
输入
[ { "TemplateProcessGroupName": "AAAAA", "Name": "Keytab Credential Service" }, { "TemplateProcessGroupName": "BBBB", "Name": "Keytab Credential Service" }, { "TemplateProcessGroupName": "CCCCC", "Name": "Keytab Credential Service" } ]
输出
[ { "TemplateProcessGroupName": "AAAAA", "Name": "Keytab Credential Service" }, { "TemplateProcessGroupName": "CCCCC", "Name": "Keytab Credential Service" } ]
内容的提问来源于stack exchange,提问作者MHegde
相关产品推荐
相关产品推荐

