JOLT 在数组中划分数字
JOLT to divide number inside array
我有 JSON:
{
"queryParams": {
"limit": [
"500"
],
"breakdowns": [
"impression_device,publisher_platform,platform_position"
]
},
"body": ""
}
我想动态地将 limit
数组中的数字除以 2。
我试过:
[
{
"operation": "modify-overwrite-beta",
"spec": {
"queryParams": {
"limit": "=divide(@(2,limit), 2)"
}
}
}
]
但这并没有改变任何东西。如何解决?
预计:
{
"queryParams": {
"limit": [
"250"
],
"breakdowns": [
"impression_device,publisher_platform,platform_position"
]
},
"body": ""
}
需要两步转换,因为limit
不是一个整数或单个值,而是一个数组,需要使用一些函数从该数组中提取所需的值,例如firstElement
, intSum
.. 等等,然后在 modify-overwrite-beta 转换中应用 divide
。如果要隐藏辅助键(lmt
),则连续进行shift变换
因此,请考虑使用下面的规范
[
{
"operation": "modify-overwrite-beta",
"spec": {
"queryParams": {
"lmt": "=firstElement(@(1,limit))",
"limit": "=divide(@(1,lmt),2)"
}
}
},
{
"operation": "shift",
"spec": {
"queryParams": {
"limit": "&1.limit",
"breakdowns": "&1.breakdowns"
},
"body": "body"
}
}
]
我有 JSON:
{
"queryParams": {
"limit": [
"500"
],
"breakdowns": [
"impression_device,publisher_platform,platform_position"
]
},
"body": ""
}
我想动态地将 limit
数组中的数字除以 2。
我试过:
[
{
"operation": "modify-overwrite-beta",
"spec": {
"queryParams": {
"limit": "=divide(@(2,limit), 2)"
}
}
}
]
但这并没有改变任何东西。如何解决?
预计:
{
"queryParams": {
"limit": [
"250"
],
"breakdowns": [
"impression_device,publisher_platform,platform_position"
]
},
"body": ""
}
需要两步转换,因为limit
不是一个整数或单个值,而是一个数组,需要使用一些函数从该数组中提取所需的值,例如firstElement
, intSum
.. 等等,然后在 modify-overwrite-beta 转换中应用 divide
。如果要隐藏辅助键(lmt
),则连续进行shift变换
因此,请考虑使用下面的规范
[
{
"operation": "modify-overwrite-beta",
"spec": {
"queryParams": {
"lmt": "=firstElement(@(1,limit))",
"limit": "=divide(@(1,lmt),2)"
}
}
},
{
"operation": "shift",
"spec": {
"queryParams": {
"limit": "&1.limit",
"breakdowns": "&1.breakdowns"
},
"body": "body"
}
}
]