json 过滤掉数组中的第一个元素并保持实际数组不变

mznpcxlj  于 2023-05-08  发布在  其他
关注(0)|答案(1)|浏览(323)

下面是JSON文件:

{
    "Objects": [
        {
            "Key": "file.txt",
            "VersionId": "111111"
        },
        {
            "Key": "file.txt",
            "VersionId": "22222"
        },
        {
            "Key": "file.txt",
            "VersionId": "33333"
        },

    ]
}

我需要使用JQ对其进行过滤,因此输出将像这样:

{
    "Objects": [
        {
            "Key": "file.txt",
            "VersionId": "22222"
        },
        {
            "Key": "file.txt",
            "VersionId": "33333"
        },

    ]
}

结构必须保持完整,我只需要过滤掉“Objects”数组中的FIRST元素。任何其他元素必须保持完整。
我知道有一种方法可以使用JQ的“.[1:]”来做一些类似的事情,但它也会过滤掉实际的.Object数组,这是我不能拥有的。
例如:

user@laptop:$ cat data.json | jq ' .Objects | .[1:]'                                                                                                                                             
[
  {
    "Key": "file.txt",
    "VersionId": "2222"
  },
  {
    "Key": "file.txt",
    "VersionId": "33333"
  }
]
kyks70gy

kyks70gy1#

|=更新分配:

.Objects |= .[1:]

或者构造一个新对象:

{ Objects: .Objects[1:] }

也可以从数组中del一个元素:

del(.Objects[0])

最后一个解决方案可能最接近您想要做的事情,用代码表示,即。“删除第一个数组元素”。

相关问题