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

Apache NiFi Jolt转换求助:将含数组的JSON拆分为单条记录

Apache NiFi Jolt转换:按索引拆分数组生成新对象

针对你需要将每个对象内的数值数组按索引拆分、保留其他字段的需求,可以使用以下Jolt转换规范:

[
  {
    "operation": "shift",
    "spec": {
      "*": {
        "val1": {
          "*": {
            "@2,ABC": "[&3].ABC",
            "@2,DEF": "[&3].DEF",
            "@2,GHI": "[&3].GHI",
            "@2,JKL": "[&3].JKL",
            "@": "[&3].val1",
            "@2,val2[&1]": "[&3].val2"
          }
        }
      }
    }
  },
  {
    "operation": "shift",
    "spec": {
      "*": "[]"
    }
  }
]

转换逻辑说明

  1. 第一步Shift操作

    • 遍历根数组中的每个原对象(*)
    • 针对每个对象的val1数组,逐个处理其元素(内层*),&1代表当前元素的索引
    • 通过@2,字段名回溯到原对象层级,复制ABC/DEF/GHI/JKL这些固定字段到新结构中
    • @直接取当前val1元素的值,@2,val2[&1]取同索引的val2元素,确保两个数组的同位置元素配对
    • 这一步会生成中间结构:每个原对象对应一个子数组,子数组包含拆分后的多个对象
  2. 第二步Shift操作

    • 遍历中间结构的所有子数组,用[]将子数组内的对象全部展开到根数组中,得到最终的扁平化输出

效果验证

将你提供的输入JSON代入转换后,会生成预期的输出:每个原对象根据数组长度拆分为多个对象,每个新对象保留原固定字段,并对应一组同索引的val1和val2值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 16:52:08