Json Apache NiFi 中的字段匹配

Json field match in Apache NiFi

我有一个 json 来自这样的 InvokeHTTP 的响应:

{
   "id": "1234567890",
   "status": "completed",
   "others": "abc",
   "field": "1"
}

我想使用一个处理器(也许是 RouteOnAttribute??)来检查响应的状态是否已完成,如果不匹配,它会返回到 invokeHttp 再次检查状态。

我试过这个东西: EvaluateJsonPath(从 json 中提取 id)-> InvokeHTTP(获取状态)-> RouteOnAttribute(如果完成则检查状态)

对于 InvokeHTTP,我需要原始 json 文件,因为我必须获取请求 ID。

我使用 Route to 属性 name 具有以下属性:status - ${status:equals('completed')}

不幸的是,即使状态已完成,我也总是收到不匹配的消息。

问题出在哪里?

我已经建立了虚拟流程,来检查你的情况,没有发现任何问题。这是流程: 这里要点:

  1. 在顶部 EvaluateJsonPath 中,我使用流文件属性作为目标并添加新的 属性 - 状态
  2. 在 RouteOnAttribute 中我检查状态值
  3. 在底部的 EvaluateJsonPath 中,我提取了 id,作为目标,我使用了 flowfile-content