【问题标题】:JOLT - Reorder nested arraysJOLT - 重新排序嵌套数组
【发布时间】:2021-04-20 12:16:55
【问题描述】:

我正在尝试使用 JOLT 重新排序嵌套数组。我的目标是将位于同一数组位置 (i) 的所有元素分组并将它们添加到另一个数组中。

输入:

{
  "values": [
    [
      "84139",
      "123"
    ],
    [
      "230",
      "456"
    ],
    [
      "230475",
      "789"
    ]
  ]
}

想要的结果:

{
  "result": [ // same length as values[i]
    [ // same length as values
      "84139",
      "230",
      "230475"
    ],
    [
      "123",
      "456"
      "789"
    ]
  ]
}

INFO:记住两个数组(根和子)的长度是可变的,因此解决方案必须是通用的。

附加输入:

{
  "values": [
    [
      "84139",
      "123",
      "000"
    ],
    [
      "230",
      "456",
      "000"
    ]
  ]
}

附加输出:

{
  "result": [
    [
      "84139",
      "230"
    ],
    [
      "123",
      "456"
    ],
    [
      "000",
      "000"
    ]
  ]
}

【问题讨论】:

    标签: apache-nifi jolt


    【解决方案1】:

    设法得到你想要的。

    [
      {
        "operation": "shift",
        "spec": {
          "values": {
            "*": {
              "*": "result.[&0]"
            }
          }
        }
      }
    ]
    

    这里的秘密是使用&0将值的“叶节点”与它们在各自数组中占据的索引进行匹配,在这种情况下,它表示每个叶节点的数组索引。

    请注意,此解决方案仅在 values 的所有子代具有相同数量的子代时才有效。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-20
      • 1970-01-01
      • 2022-01-02
      • 1970-01-01
      • 1970-01-01
      • 2021-09-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多