我正在尝试在Nifi中使用EvaluateJsonPath处理器,并且遇到了jayway jsonpath语法的问题。 我的对象如下所示:
$.[?(@.tags[1] =~ /xyz/i)]
我想基于标签路由消息 - 我希望包含“xyz”的所有内容都以一种方式路由,而不包含它的所有内容都以另一种方式路由。
使用http://jsonpath.herokuapp.com/我一直在测试并试图找出基于包含匹配字符串数组的json对象进行过滤的语法。我可以根据公开索引进行匹配(所以C0(...) nogil
C1(...) with gil
工作正常),但我不能保证标签字段中对象的顺序或数量。
有没有办法在jayway json模块中执行此操作?我看到了filter the Json according to string in an array in JSONPATH我尝试过,但它似乎不适用于上面的模拟器。
答案 0 :(得分:3)
我不知道如何在一个EvaluateJsonPath处理器步骤中执行此操作。但它肯定可以分两步完成:
Table_B
的JsonPath表达式标记出标记数组,并将处理器返回类型设置为select
b.B2, a.A3
from
Table_A a
join
Table_B b on (a.A_ID = b.B_ID)
,以便返回数组。这将导致匹配$.tags[?(@ =~ /xyz/i)]
和非匹配文件json
["xyz"]
的表达式。将JSON作为正则表达式的文本进行评估以匹配标记也是值得考虑的。