使用RouteOnAttribute时出现问题无法读取json属性,并且始终将流发送到不匹配项

问题描述

在使用RouteOnAttribute nifi处理器时,我输入了json数据

我从convertRecord处理器得到的

[{"dev":"xyz","detail":"abc"}]

路由策略:路由到媒体资源名称

ifmatch:${dev:equals( "xyz" )}

我在单引号和双引号中都尝试过${dev:matches( "xyz")},仍然没有将流文件重定向到“ ifmatch”。重定向到不匹配

反正有解决此问题的方法了吗?

解决方法

流文件内容属性不同。内容是任意的-可以为空,文本,XML KB,视频GB或二进制。每个流文件还具有属性,它们是保存在内存中的String的键/值对。

如果要路由此数据,则有多种选择:

  1. 使用RouteOnTextRouteOnContent直接使用实际流文件内容。
  2. 使用EvaluateJsonPath将其提取到某个属性,然后在该属性上进行路由。

Apache NiFi User GuideIn-Depth提供了有关此区别的更多信息。