You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在NiFi中拆分JSON数组为单独FlowFile并按属性路由?

NiFi拆分动态JSON数组并按键路由解决方案

1. 拆分JSON数组为单个FlowFile(解决拆分失败问题)

之前使用SplitJson未成功大概率是JsonPath表达式错误,正确配置如下:

  • 选用SplitJson处理器
  • 设置JsonPath Expression为$[*]:该表达式会匹配顶级JSON数组的每一个元素,将每个独立对象拆分为单独的FlowFile
  • 确认Split Into选项为Each element in the array,确保每个数组元素生成一个独立FlowFile

处理后每个FlowFile内容将是单个JSON对象,例如:

{ "A" : "10560, 543, 267, 384, 0"}

2. 提取每个FlowFile的键名(用于路由判断)

使用EvaluateJsonPath处理器提取每个JSON对象的唯一键名:

  • 设置Destination为flowfile-attribute(将提取结果存储为FlowFile属性)
  • 添加自定义属性,例如命名为target_key,属性值填写$keys()[0]:该表达式会获取当前JSON对象的所有键(每个对象仅一个键),并取第一个元素作为属性值,最终FlowFile会带上target_key=A/target_key=B等属性

3. 按键路由到对应处理器

使用RouteOnAttribute处理器实现精准路由:

  • 为每个需要单独路由的键创建规则:
    • 规则名称:route_to_A,匹配条件:${target_key:equals('A')}
    • 规则名称:route_to_B,匹配条件:${target_key:equals('B')}
    • 以此类推,对应所有可能出现的键
  • 将每个规则的输出连接到对应的后续处理器即可

动态键兼容说明

若Excel生成的JSON键名是完全动态未知的,可简化RouteOnAttribute配置:

  • 开启Dynamic Properties,直接将${target_key}作为路由属性名,NiFi会自动根据属性值创建路由分支,无需提前配置所有键的规则

内容的提问来源于stack exchange,提问作者Pauline Rumyantseva

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 19:52:15