json - 根据 json 字段路由整个 Json 内容

标签 json apache-nifi

我有以下 JSON:

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

我想根据“警报”中的字段是否为“严重”来路由此信息。

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

对于 RouteOnAttribute 我已经尝试过

警报:${Payload:jsonPath('$.Alert'):equals('Critical')}

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

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

enter image description here

最佳答案

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

如何向流程文件添加属性?

在generateflowfile处理器之后使用EvaluateJsonPath处理器,目标作为flowfile-attribute

添加新属性

payload.alert 为 $.Payload.Alert

enter image description here 然后使用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

关于json - 根据 json 字段路由整个 Json 内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51535291/

相关文章:

csv - Apache NiFi : How to compare multiple rows in a csv and create new column

mysql 5.7如何将json数组提取到多列?

mongodb - Nifi 密码和其他敏感字段的安全参数存储

json - 在 postgres、Django 中保存大型 json 对象

perl - 如何使用 LWP 发出 JSON POST 请求?

java - OkHttp 是否在重定向时发送授权和其他可能敏感的 header ?

elasticsearch - Elasticsearch:索引推文-映射,模板或ETL

apache-nifi - 使用 nifi 表达式语言指定 null

java - Spring 反序列化 @RequestBody 中的 LocalDate 与 @RequestParam 中的 LocalDate 不同——为什么,它们可以相同吗?

JavaScript 数组 JSON.parse(字符串)