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

如何在NiFi中用Jolt Transform从数组提取元素生成新属性

解决方案:通过Jolt索引提取数组元素生成新属性

完全可以通过数组索引来提取元素并生成对应新属性,以下是完整的Jolt转换规则及步骤说明:

完整Jolt转换规则

[
  // 第一步:拆分字符串为数组,同时去除每个元素的首尾空格
  {
    "operation": "modify-overwrite-beta",
    "spec": {
      "FILE": "=split(',',@(1,FILE))",
      "FILE[]": "=trim"
    }
  },
  // 第二步:通过数组索引提取元素,映射到指定属性名
  {
    "operation": "shift",
    "spec": {
      "FILE": {
        "0": "FILE.First",
        "1": "FILE.Second",
        "2": "FILE.Third",
        "3": "FILE.Fourth"
      }
    }
  },
  // 第三步:将结果包裹在数组中(匹配目标格式要求)
  {
    "operation": "shift",
    "spec": {
      "*": "[#1].&"
    }
  }
]

规则说明

  1. 拆分并清理数组:
    原split操作后数组元素可能带空格(比如原字符串是"23, 21, 24, 25"),新增"FILE[]": "=trim"可批量去除每个数组元素的首尾空格,避免属性值带多余空白字符。

  2. 通过索引映射属性:
    在shift操作中,使用数组索引(从0开始计数)定位元素,"0"对应FILE.First,"1"对应FILE.Second,以此类推,直接将数组元素映射到目标属性名。

  3. 包裹为数组结构:
    最后一步shift操作把顶层的FILE对象包裹进数组,完全匹配你需要的输出格式。

转换结果

经过上述规则转换后,最终得到:

[
  {
    "FILE": {
      "First": "23",
      "Second": "21",
      "Third": "24",
      "Fourth": "25"
    }
  }
]

内容的提问来源于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.19 23:34:54