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

如何在Apache NiFi的Jolt转换处理器中解析为键值交替扁平数组

Apache NiFi Jolt转换:嵌套JSON转扁平数组

输入JSON

{
  "metricname": [
    "CPU1min",
    "MemoryFree",
    "MemoryUsed"
  ],
  "dataSourceName": "Standard CPU Utilization Network Cisco",
  "paramname": {
    "Standard CPU Utilization Network Cisco-3745 chassis Index0": {
      "values": [
        [
          "No Data",
          "No Data",
          "No Data",
          "No Data",
          "No Data"
        ],
        [
          "No Data",
          "No Data",
          "No Data",
          "No Data",
          "No Data"
        ],
        [
          "No Data",
          "No Data",
          "No Data",
          "No Data",
          "No Data"
        ]
      ]
    }
  }
}

期望输出JSON

[
  "metricname",
  [
    "CPU1min",
    "MemoryFree",
    "MemoryUsed"
  ],
  "dataSourceName",
  "Standard CPU Utilization Network Cisco",
  "paramname",
  "Standard CPU Utilization Network Cisco-3745 chassis Index0",
  "values",
  [
    "No Data",
    "No Data",
    "No Data",
    "No Data",
    "No Data"
  ],
  [
    "No Data",
    "No Data",
    "No Data",
    "No Data",
    "No Data"
  ],
  [
    "No Data",
    "No Data",
    "No Data",
    "No Data",
    "No Data"
  ]
]

Jolt转换规格

[
  {
    "operation": "shift",
    "spec": {
      "metricname": {
        "$": "[0]",
        "@": "[1]"
      },
      "dataSourceName": {
        "$": "[2]",
        "@": "[3]"
      },
      "paramname": {
        "*": {
          "$": "[4]",
          "@(2,$)": "[5]",
          "values": {
            "$": "[6]",
            "*": "[#7]"
          }
        }
      }
    }
  }
]

规格说明

  • 使用shift操作将嵌套结构映射到扁平数组的指定索引位置
  • 对metricname和dataSourceName,直接将键名与对应值分别放入数组的对应位置
  • 处理paramname时,先提取动态键名作为数组第5项,再将values下的每个子数组依次追加到数组中

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 20:26:16