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

如何在NiFi中为JSON数组的每个元素添加指定键名

NiFi JSON数组转对象实现方案

推荐使用NiFi原生的JoltTransformJSON处理器完成转换,无需自定义代码,同时支持后续直接引入NiFi属性添加字段,具体操作如下:

1. 基础转换配置

你需要的JSON转换可以通过如下Jolt规范实现,直接填入处理器的Jolt Specification配置项即可:

[
  {
    "operation": "shift",
    "spec": {
      "locations": {
        "*": {
          "@": "locations[&1].locationid"
        }
      }
    }
  }
]

该规则会遍历原locations数组的每一个数值元素,将其赋值到新数组对应下标对象的locationid字段,完全匹配你需要的输出格式。

2. 引入NiFi属性添加其他元素

Jolt规范原生支持NiFi表达式语言,你可以直接在规则中添加需要的属性字段,支持加到根节点或者每个location对象内部。示例规则如下:

[
  {
    "operation": "shift",
    "spec": {
      "locations": {
        "*": {
          "@": "locations[&1].locationid"
        }
      }
    }
  },
  {
    "operation": "modify-overwrite-beta",
    "spec": {
      // 给根节点添加属性字段
      "dataSource": "${flow.file.source}",
      "generateTime": "${now():format('yyyy-MM-dd HH:mm:ss')}",
      "locations": {
        "*": {
          // 给每个location对象添加统一属性字段
          "region": "${default.region.code}"
        }
      }
    }
  }
]

如果添加属性的逻辑比较独立,也可以在JoltTransformJSON处理器后串联AttributesToJSON处理器,选择将指定NiFi属性插入到JSON根节点即可。

3. 处理器配置注意事项

  • 处理器的Jolt Transformation DSL选项选择Chain,匹配数组格式的Jolt规范
  • 开启Expression Language Support选项,确保可以正常解析NiFi表达式语言

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 04:36:04