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

如何使用Apache NiFi的Jolt Transform将数组值转为单个JSON对象

使用Apache NiFi的Jolt Transform把数组值拆成独立JSON对象

输入数据

{
  "headers": {
    "query": "NA",
    "param": "false"
  },
  "data": [
    {
      "SEQ_NUM": [
        162,
        162,
        162,
        162,
        162,
        162,
        162,
        162
      ]
    },
    {
      "SEQ_NUM": [
        162,
        162,
        162,
        162,
        162,
        162,
        162,
        162
      ]
    }
  ]
}

原Jolt规格的问题

你提供的Jolt配置无法正确将每个SEQ_NUM数组元素拆分为独立对象,还会丢失headers信息,也没法对应原data数组的层级逻辑。

可行的Jolt解决方案

如果要把所有SEQ_NUM数组元素转成独立JSON对象,同时可选保留headers,可以用以下配置:

[
  // 第一步:拆分SEQ_NUM数组并暂存数据
  {
    "operation": "shift",
    "spec": {
      "headers": "headers",
      "data": {
        "*": {
          "SEQ_NUM": {
            "*": {
              "@": "temp[#].SEQ_NUM"
            }
          }
        }
      }
    }
  },
  // 第二步:将暂存的数组转为最终的data数组(不需要headers可跳过此步)
  {
    "operation": "shift",
    "spec": {
      "headers": "headers",
      "temp": "data"
    }
  }
]

转换后输出示例

执行上述配置后,输出结果如下:

{
  "headers": {
    "query": "NA",
    "param": "false"
  },
  "data": [
    {"SEQ_NUM": 162},
    {"SEQ_NUM": 162},
    {"SEQ_NUM": 162},
    {"SEQ_NUM": 162},
    {"SEQ_NUM": 162},
    {"SEQ_NUM": 162},
    {"SEQ_NUM": 162},
    {"SEQ_NUM": 162},
    {"SEQ_NUM": 162},
    {"SEQ_NUM": 162},
    {"SEQ_NUM": 162},
    {"SEQ_NUM": 162},
    {"SEQ_NUM": 162},
    {"SEQ_NUM": 162},
    {"SEQ_NUM": 162},
    {"SEQ_NUM": 162}
  ]
}

如果不需要保留headers,可简化配置为:

[
  {
    "operation": "shift",
    "spec": {
      "data": {
        "*": {
          "SEQ_NUM": {
            "*": {
              "@": "data[#].SEQ_NUM"
            }
          }
        }
      }
    }
  }
]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 11:10:16