【问题标题】:ROuting entire Json Contents based on json field基于 json 字段路由整个 Json 内容
【发布时间】:2018-07-26 09:18:50
【问题描述】:

我有以下 JSON:

{
    "From": "stuart",
    "Payload": {
        "Alert": "Critical",
        "Recipient": "Joe"
    }
}

我想根据警报中的字段是否为“关键”来路由。

我已经尝试过 RouteOnAttribute 处理器和 EvaluateJson 处理器。两者都没有工作。

RouteOnAttribute 我试过了

提醒:${Payload:jsonPath('$.Alert'):equals('Critical')}

然后我有一个基于 Alerted 的关系,但没有任何东西进入我的 RouteOnAttribute 处理器,队列只是坐在那里直到它填充到 10,000。

我需要路由完整的 JSON,我不能在路由中丢失信息。

【问题讨论】:

    标签: json apache-nifi


    【解决方案1】:

    问题在于 jsonPath 函数适用于流文件属性,但您没有与流文件关联的 Payload 属性。

    如何给流文件添加属性?

    generateflowfile 处理器使用 EvaluateJsonPath 处理器,destination 为 flowfile-attribute,

    添加新属性

    payload.alert as $.Payload.Alert

    然后使用 routeonattribute 处理器添加新属性为

    提醒

    ${payload.alert:equals('Critical')}
    

    流程:

    1.GenerateFlowFile
    2.EvaluateJsonPath //extract the value and keep as attribute to the flowfile
    3.RouteOnAttribute //check the attribute value
    

    【讨论】:

      猜你喜欢
      • 2017-02-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-26
      • 1970-01-01
      • 2017-05-05
      • 1970-01-01
      • 2021-12-06
      相关资源
      最近更新 更多