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(如果完成则检查状态)
- -> 比赛进入漏斗
- -> 取消匹配再次转到 EvaluateJsonPath(以创建循环)
对于 InvokeHTTP,我需要原始 json 文件,因为我必须获取请求 ID。
我使用 Route to 属性 name 具有以下属性:status - ${status:equals('completed')}
不幸的是,即使状态已完成,我也总是收到不匹配的消息。
问题出在哪里?
我已经建立了虚拟流程,来检查你的情况,没有发现任何问题。这是流程:
这里要点:
- 在顶部 EvaluateJsonPath 中,我使用流文件属性作为目标并添加新的 属性 - 状态
- 在 RouteOnAttribute 中我检查状态值
- 在底部的 EvaluateJsonPath 中,我提取了 id,作为目标,我使用了 flowfile-content
我有一个 json 来自这样的 InvokeHTTP 的响应:
{
"id": "1234567890",
"status": "completed",
"others": "abc",
"field": "1"
}
我想使用一个处理器(也许是 RouteOnAttribute??)来检查响应的状态是否已完成,如果不匹配,它会返回到 invokeHttp 再次检查状态。
我试过这个东西: EvaluateJsonPath(从 json 中提取 id)-> InvokeHTTP(获取状态)-> RouteOnAttribute(如果完成则检查状态)
- -> 比赛进入漏斗
- -> 取消匹配再次转到 EvaluateJsonPath(以创建循环)
对于 InvokeHTTP,我需要原始 json 文件,因为我必须获取请求 ID。
我使用 Route to 属性 name 具有以下属性:status - ${status:equals('completed')}
不幸的是,即使状态已完成,我也总是收到不匹配的消息。
问题出在哪里?
我已经建立了虚拟流程,来检查你的情况,没有发现任何问题。这是流程:
- 在顶部 EvaluateJsonPath 中,我使用流文件属性作为目标并添加新的 属性 - 状态
- 在 RouteOnAttribute 中我检查状态值
- 在底部的 EvaluateJsonPath 中,我提取了 id,作为目标,我使用了 flowfile-content