JSONata 说实话让我抓狂。几周前我问过类似的问题,但我仍然不知道我在做什么,所以我又来了。
我正在做什么:
[[ {
"time": "2024-04-26",
"value": 40
},
{
"time": "2024-04-27",
"value": 10
},
{
"time": "2024-04-28",
"value": 20
}
],
[ {
"time": "2024-04-26",
"value_2": 5
},
{
"time": "2024-04-27",
"value_2": 2
},
{
"time": "2024-04-28",
"value_2": 4
}
]]
我想要的是获取
time
的不同值并除以这些值 - value/value_2
:
[ {
"time": "2024-04-26",
"value": 8
},
{
"time": "2024-04-27",
"value": 5
},
{
"time": "2024-04-28",
"value": 5
}
]
我尝试了类似的方法,但我只得到了
time
的不同值。
$type($) = 'array' ?
(($count($) ) > 0 ?
$map($[0], function($v, $i, $a)
{ { "time": $v.time,
"value": $v.value/ $v.value_2 } })[]: []): undefined
输出:
[
{
"time": "2024-04-26"
},
{
"time": "2024-04-27"
},
{
"time": "2024-04-28"
}
]
您可以使用带有以下表达式的 JSONata 来实现所需的结果:
$zip($[0].time, $[0].value / $[1].value_2).{
"time": $[0],
"value": $[1]
}