使用Jolt变换将数组分成多个对象

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

我有一个像这样的 JSON 输入:

输入:

{
    "data": {
        "data": [
            { "indicator": "abc", "value": ["1", "2", "3", "4", "5"] },
            { "indicator": "def", "value": ["6", "7", "8", "9", "10"] }
        ]
    }
}

我想要这样的 JSON 输出:

输出:

[
    { "indicator": "abc", "value": "1" },
    { "indicator": "abc", "value": "2" },
    { "indicator": "abc", "value": "3" },
    { "indicator": "abc", "value": "4" },
    { "indicator": "abc", "value": "5" },
    { "indicator": "def", "value": "6" },
    { "indicator": "def", "value": "7" },
    { "indicator": "def", "value": "8" },
    { "indicator": "def", "value": "9" },
    { "indicator": "def", "value": "10" }
]

有谁知道如何编写 JOLT 转换规范来获得此输出?我已经尝试过,但我不知道如何解决这个问题。

我希望有人能帮助我。非常感谢。

我尝试编写 JOLT 转换规范,但我不知道该怎么做。希望有人能帮我写一篇。

javascript java apache apache-nifi jolt
1个回答
0
投票

您可以使用以下包含 shift 操作的转换:

[
  { // put the attributes into objects separatedly
    "operation": "shift",
    "spec": {
      "@data.data": {
        "*": {
          "value": {
            "*": {
              "@2,indicator": "&3_&.indicator",
              "@": "&3_&.&2"
            }
          }
        }
      }
    }
  },
  { // get rid of the object keys
    "operation": "shift",
    "spec": {
      "*": ""
    }
  }
]

网站上的 演示 http://jolt-demo.appspot.com/ 是:

© www.soinside.com 2019 - 2024. All rights reserved.