0

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

array1#$pos[$pos!=0]

但是当将此表达式应用于具有 2 个元素的数组时,此表达式不会返回仅包含第二个元素的数组,而是返回第二个元素,如您在以下 jsonata 测试中所见

https://try.jsonata.org/gl0l_wnGe

在此处输入图像描述

所以这不是我想要的。我正在寻找一个 for"new_array1"不返回"two"但返回的 jsonata 表达式["two"]

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

4

1 回答 1

1

它返回"two"而不是["two"]因为序列展平规则https://docs.jsonata.org/processing#sequences。在路径表达式的末尾添加一个空[]字符会将序列转换为数组。尝试这个:

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

https://try.jsonata.org/BaO2T7_9i

于 2020-09-17T05:40:18.670 回答