如何在NiFi的JoltTransformJson处理器中实现IF-Else条件?
Jolt转换实现IF-Else条件逻辑
需求说明
需要基于以下两个条件修改SSP字段:
- 当
Name为null且IsEligible为false时,将SSP设为"0" - 当
Name不为null且IsEligible为true时,将SSP_I的值赋值给SSP
Jolt转换规范
使用modify-overwrite-beta操作结合条件判断实现需求,具体转换规则如下:
[ { "operation": "modify-overwrite-beta", "spec": { "SSP": [ { "if": ["and", ["eq", ["@(1,Name)", null], ["eq", ["@(1,IsEligible)", false]]], "then": "0" }, { "if": ["and", ["not", ["eq", ["@(1,Name)", null]]], ["eq", ["@(1,IsEligible)", true]]], "then": "${SSP_I}" }, "=default" ] } } ]
规则解释
- 第一个条件分支:通过
and逻辑组合两个判断,验证Name是否为null、IsEligible是否为false,满足条件则将SSP覆盖为"0" - 第二个条件分支:验证
Name不为null且IsEligible为true,满足条件则将SSP_I的值赋值给SSP - 默认分支:
=default表示如果上述两个条件都不满足,保留SSP原有的值
测试示例
输入JSON
{ "IsEligible" : false, "Name" : null, "SSP" : "15.00", "SSP_I" : "5.00" }
输出JSON
{ "IsEligible" : false, "Name" : null, "SSP" : "0", "SSP_I" : "5.00" }
内容的提问来源于stack exchange,提问作者pandu
相关产品推荐
相关产品推荐

