JOLT 将数组转换为字符串,数组中的元素数量是无限的
JOLT converting an array to a string with an indifinite numbers of elements in the array
请帮忙。我查看了所有类似的问题,但没有找到我的答案。我知道如何转换这个
{
"rooms": {
"room_number": [
{
"number": "1"
},
{
"number": "2"
},
{
"number": "3"
},
{
"number": "4"
},
{
"number": "5"
}
]
}
}
进入这个
{
"room_numbers" : "1;2;3;4;5"
}
有了这个 JOLT
[
{
"operation": "shift",
"spec": {
"rooms": {
"room_number": {
"*": {
"@(number)": "room_numbers[]"
}
}
}
}
},
{
"operation": "modify-overwrite-beta",
"spec": { "room_numbers": "=concat(@(2,room_numbers[0]),';',@(2,room_numbers[1]),';',@(2,room_numbers[2]),';',@(2,room_numbers[3]),';',@(2,room_numbers[4]))" }
}
]
但我不知道如果数组中的元素数量是一个变量,这是怎么回事。
您可以使用 join 而不是 concat 以及 modify 转换以执行一次连接而不是单独添加每个数组元素,例如
[
{
// dynamically get the array of numbers, namely "room_numbers"
"operation": "shift",
"spec": {
"rooms": {
"room_number": {
"*": {
"*": "&2s"
}
}
}
}
},
{
// concatenate all of them
"operation": "modify-overwrite-beta",
"spec": {
"*": "=join(';',@(1,&))"
}
}
]
请帮忙。我查看了所有类似的问题,但没有找到我的答案。我知道如何转换这个
{
"rooms": {
"room_number": [
{
"number": "1"
},
{
"number": "2"
},
{
"number": "3"
},
{
"number": "4"
},
{
"number": "5"
}
]
}
}
进入这个
{
"room_numbers" : "1;2;3;4;5"
}
有了这个 JOLT
[
{
"operation": "shift",
"spec": {
"rooms": {
"room_number": {
"*": {
"@(number)": "room_numbers[]"
}
}
}
}
},
{
"operation": "modify-overwrite-beta",
"spec": { "room_numbers": "=concat(@(2,room_numbers[0]),';',@(2,room_numbers[1]),';',@(2,room_numbers[2]),';',@(2,room_numbers[3]),';',@(2,room_numbers[4]))" }
}
]
但我不知道如果数组中的元素数量是一个变量,这是怎么回事。
您可以使用 join 而不是 concat 以及 modify 转换以执行一次连接而不是单独添加每个数组元素,例如
[
{
// dynamically get the array of numbers, namely "room_numbers"
"operation": "shift",
"spec": {
"rooms": {
"room_number": {
"*": {
"*": "&2s"
}
}
}
}
},
{
// concatenate all of them
"operation": "modify-overwrite-beta",
"spec": {
"*": "=join(';',@(1,&))"
}
}
]