摇晃变换以在 Nifi 中展平数组

Jolt transform to flatten a array in 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]
}

这有什么可以颠簸变换的。谢谢!

如果您需要不使用内置函数的解决方案,请试试这个!显然编程就是我们用逻辑解决问题,不用包和内置函数。

注意:这个解决方案实际上在Javascript中。我没有注意到标签。抱歉

const temp = {
  a: [1, 2, 3, [4, 5, 6], [7], [8, 9], 10, 11]
};

let items = [];

temp.a.forEach((item) => {
  items = [
    ...items,
    ...(item.constructor.name === "Array" ? item : [item])
  ];
});
console.log(items);

您可以应用连续的 shift 转换,首先将元素分成两个数组,其中一个有子数组,另一个有整数,即 xy 个数组。然后在删除 null 值的同时将它们合并,并将字符串化元素转换回整数,例如

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