首页 > 解决方案 > 颠簸变换以展平 Nifi 中的数组

问题描述

我有以下输入json:

{
  "a":[1,2,3,[4,5,6], [7], [8,9], 10, 11]
}

我希望输出为:

{
  "a":[1,2,3,4,5,6,7,8,9,10,11]
}

什么可以为此颠簸变换。谢谢!

标签: arraysapache-nifijolt

解决方案


您可以通过将元素分隔到两个数组开始应用连续移位转换,其中一个具有子数组,另一个具有整数,即xy数组。然后在删除null值的同时将它们组合起来,并将字符串化元素转换回整数,例如

[
  {
    "operation": "shift",
    "spec": {
      "a": {
        "*": {
          "@": "x.[@1]",
          "*": "y.[]"
        }
      }
    }
 },
  {
    "operation": "shift",
    "spec": {
      "*": {
        "*": {
          "$1": "@1"
        }
      }
    }
 },
  {
    "operation": "shift",
    "spec": {
      "*": {
        "$": "@(0)"
      }
    }
  },
  {
    "operation": "shift",
    "spec": {
      "*": {
        "*": {
          "@": "a"
        }
      }
    }
  },
  {
    "operation": "modify-overwrite-beta",
    "spec": {
      "*": "=toInteger"
    }
  }
]

推荐阅读