我有以下 JSON:
{
"From": "stuart",
"Payload": {
"Alert": "Critical",
"Recipient": "Joe"
}
}
我想根据“警报”中的字段是否为“严重”来路由此信息。
我尝试过 RouteOnAttribute 处理器和 EvaluateJson 处理器。两者都没有工作。
对于 RouteOnAttribute 我已经尝试过
警报:${Payload:jsonPath('$.Alert'):equals('Critical')}
然后我有一个基于 Alerted 的关系,但没有任何内容进入我的 RouteOnAttribute 处理器,队列只是坐在那里直到填满 10,000。
我需要路由完整的 JSON,我不能在路由中丢失信息。
最佳答案
问题在于 jsonPath 函数适用于流文件属性,但您没有与流文件关联的 Payload 属性。
如何向流程文件添加属性?
在generateflowfile处理器之后使用EvaluateJsonPath处理器,目标作为flowfile-attribute,
添加新属性
payload.alert 为 $.Payload.Alert
已发出警报
${payload.alert:equals('Critical')}
流量:
1.GenerateFlowFile
2.EvaluateJsonPath //extract the value and keep as attribute to the flowfile
3.RouteOnAttribute //check the attribute value
关于json - 根据 json 字段路由整个 Json 内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51535291/