摇晃变换以在 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 转换,首先将元素分成两个数组,其中一个有子数组,另一个有整数,即 x
和 y
个数组。然后在删除 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"
}
}
]
我有以下输入 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 转换,首先将元素分成两个数组,其中一个有子数组,另一个有整数,即 x
和 y
个数组。然后在删除 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"
}
}
]