Nifi - 将根 json 元素拆分为不同的流文件

问题描述 投票:0回答:1

我有一个数据源正在发送包含各种键值对的 json 格式的消息。每条消息中包含哪些密钥并不一致。但是,我需要将每个单独的键值对拆分到自己的流文件中,并能够提取键名称

这样做的原因是,我需要使用键名称执行表查找,以生成新的数据格式,包括值

例如,如果我收到这样的消息:

{
  "key1": 123,
  "Key2": 4234,
  "Key3": 789  
}

我希望输出是三个独立的流程文件

{
  "key1": 123
}

{
  "Key2": 4234
}

{
  "Key3": 789 
}

我还需要根据这些单独的流文件知道如何提取密钥的名称

json split apache-nifi jolt
1个回答
2
投票

对了,

您需要一个 JoltTransformJSON 处理器来完成此操作

您的流程将如下所示:

我的震动设置在哪里:

震动规格:

[
  {
    "operation": "shift",
    "spec": {
      "*": {
        "$": "[#2].Key",
        "@": "[#2].Value"
      }
    }
  }
]

**接下来,将输出拆分为 $.*.

并使用 EvaluateJson 评估 KeyValue ,然后您可以根据需要使用 Lookup 中的属性。

这将是 Jolt Trans 的输出:

[
  {
    "Key": "key1",
    "Value": 123
  },
  {
    "Key": "Key2",
    "Value": 4234
  },
  {
    "Key": "Key3",
    "Value": 789
  }
]
© www.soinside.com 2019 - 2024. All rights reserved.