求助:基于Jolt实现按field1指定值条件清空res1字段
Jolt条件清空字段解决方案
输入JSON数据
[ { "field1": "xyz", "field2": "mno", "res1": "pqrs" }, { "field1": "/folder1/subfolder/name", "field2": "mno1", "res1": "pqrs1" }, // 其他条目 ]
需求说明
现有Jolt Spec可实现字段清空,但需添加条件校验:仅当field1的值为/folder1/subfolder/name、/folder2/subfolder/name或/folder3/subfolder/name时,才清空res1字段。
原无校验的Jolt Spec:
[ { "operation": "default", "spec": { "*": { "*": { "res": "" } } } } ]
尝试过的无效Jolt Spec
[ { "operation": "modify-overwrite-beta", "spec": { "*": { "if": "field1 == '/abc/bvcd' || field1 == '/xyz/prq/'", "then": { "res1": "" }, "else": {} } } } ]
修正后的Jolt Spec
[ { "operation": "modify-overwrite-beta", "spec": { "*": { "res1": "=if(@(1,field1) == '/folder1/subfolder/name' || @(1,field1) == '/folder2/subfolder/name' || @(1,field1) == '/folder3/subfolder/name', '', @(1,res1))" } } } ]
说明
- 使用
@(1,field1)正确引用当前数组元素下的field1字段(1表示向上一级路径); - 通过
if函数实现条件判断:满足指定field1值时,将res1设为空字符串,否则保留原res1的值; - 采用
modify-overwrite-beta操作,确保仅符合条件的条目会被修改,其余条目保持原样。
内容的提问来源于stack exchange,提问作者Dot Net Dev 19
相关产品推荐
相关产品推荐

