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

NiFi如何从数组提取值并生成带指定键的属性?

解决方案:保留属性名拆分JSON数组生成对应属性

方案一:SplitJSON + UpdateAttribute 组合处理

这是最直观的无代码方案,适合快速实现需求:

  1. 配置SplitJSON处理器
    • 设置Json Path Expression为 $.ocorrencias,处理器会将数组中的每个元素拆分为独立的FlowFile,每个FlowFile的内容就是单个数值(比如129539290)。
  2. 配置UpdateAttribute处理器
    • 添加新属性:属性名填ocorrencias,属性值用表达式 ${file.content},这样就把拆分后FlowFile的内容赋值给名为ocorrencias的属性。
    • 可选操作:若不需要保留FlowFile的原始内容,可添加Delete Original Content属性并设为true,仅保留目标属性。

方案二:ExecuteScript 脚本一次性完成

如果想减少处理器数量,可使用ExecuteScript编写简单脚本(以Groovy为例):

import groovy.json.JsonSlurper

def flowFile = session.get()
if (!flowFile) return

flowFile = session.read(flowFile, { inputStream ->
    def jsonData = new JsonSlurper().parse(inputStream)
    jsonData.ocorrencias.each { item ->
        def newFlowFile = session.create(flowFile)
        newFlowFile = session.putAttribute(newFlowFile, "ocorrencias", item.toString())
        session.transfer(newFlowFile, REL_SUCCESS)
    }
} as InputStreamCallback)

session.remove(flowFile)

脚本会读取原FlowFile的JSON数据,遍历ocorrencias数组的每个元素,创建新FlowFile并设置对应属性,最后移除原FlowFile。

内容的提问来源于stack exchange,提问作者Rodrigo Hajime Himauari

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 09:55:19