如何在确保结果仍然是 jsonata 中的数组的同时从数组中删除第一个元素?

How can I delete the first element from an array while assuring the result is still an array in jsonata?

我想创建一个删除数组第一个元素的 jsonata 表达式。 有一个非常简单的表达式可以做到这一点:

array1#$pos[$pos!=0]

但是当将此表达式应用于具有 2 个元素的数组时,此表达式不是 returning 仅包含第二个元素的数组,而是 returning 第二个元素可以在下面的jsonata测试中看到

https://try.jsonata.org/gl0l_wnGe

所以这不是我想要的。 我正在寻找 "new_array1" 不 return "two" 但 returns ["two"].

的 jsonata 表达式

这是我遇到的实际问题的简化版。实际问题是我想删除数组中具有特定索引的元素,当数组有 2 个元素时我遇到了同样的问题。

由于序列展平规则 https://docs.jsonata.org/processing#sequences,它返回 "two" 而不是 ["two"]。在路径表达式的末尾添加一个空 [] 会将序列变成一个数组。试试这个:

{
    "new_array1": array1#$pos[$pos!=0][],
    "new_array2": array2#$pos[$pos!=0][]
}

https://try.jsonata.org/BaO2T7_9i