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

如何在Apache NiFi中提取并转换JSON数组的product字段结构

Apache NiFi 实现JSON数组结构转换方案

核心处理器选择

使用JoltTransformJSON处理器,它是NiFi中专门用于JSON结构变换的组件,基于Jolt规范实现灵活的字段映射与重组。

转换步骤

1. 明确输入输出格式

  • 输入JSON示例:
{
  "items": [
    {
      "product": {
        "organization": "ORG001",
        "code": "PROD001"
      }
    },
    {
      "product": {
        "organization": "ORG002",
        "code": "PROD002"
      }
    }
  ]
}
  • 预期输出JSON:
{
  "itens": [
    {
      "produto": "PROD001",
      "empresa": "ORG001"
    },
    {
      "produto": "PROD002",
      "empresa": "ORG002"
    }
  ]
}

2. 编写Jolt变换规则

在JoltTransformJSON的Jolt Specification属性中,填入以下Shift类型的规则:

{
  "items": {
    "*": {
      "product": {
        "code": "itens[&2].produto",
        "organization": "itens[&2].empresa"
      }
    }
  }
}

规则说明:

  • items.*:遍历原items数组的每一个元素
  • product.code:将原字段映射到新数组itens对应索引位置的produto字段,&2指代向上两层的数组索引(即原items的元素索引)
  • product.organization:同理映射到itens对应位置的empresa字段

3. 处理器配置

  • 在NiFi画布中添加JoltTransformJSON处理器,连接上游提供JSON数据的组件(如GetFile、InvokeHTTP)
  • 打开处理器配置面板,在Properties标签下:
    • 粘贴上述Jolt规则到Jolt Specification属性
    • 保持Input JSON Path默认值($,表示读取整个流文件内容)
    • 确认Output JSON Path为默认值($,输出完整转换后的JSON)

4. 验证结果

启动处理器后,检查输出流文件的内容,应符合预期的itens数组结构。

注意事项

  • 确保输入流文件的MIME类型为application/json,否则处理器可能无法正确解析
  • 若需保留原JSON中的其他未映射字段,可在Jolt规则中添加对应映射逻辑;当前规则仅保留需求指定的字段

内容的提问来源于stack exchange,提问作者Rodrigo Hajime Himauari

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 23:33:20