JOLT - 重新排序嵌套数组
JOLT - Reorder nested arrays
我正在尝试使用 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"
]
]
}
设法得到你想要的。
[
{
"operation": "shift",
"spec": {
"values": {
"*": {
"*": "result.[&0]"
}
}
}
}
]
这里的秘诀是使用&0
将值的“叶节点”与它们在各自数组中占据的索引进行匹配,在本例中,它表示每个叶节点的数组索引。
请注意,此解决方案仅在 values
的所有子项具有相同数量的子项时才有效。
我正在尝试使用 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"
]
]
}
设法得到你想要的。
[
{
"operation": "shift",
"spec": {
"values": {
"*": {
"*": "result.[&0]"
}
}
}
}
]
这里的秘诀是使用&0
将值的“叶节点”与它们在各自数组中占据的索引进行匹配,在本例中,它表示每个叶节点的数组索引。
请注意,此解决方案仅在 values
的所有子项具有相同数量的子项时才有效。