我有一个JSON文件,其中包含多个JSON - "元素",例如。
{
"name": "Name 1",
"foo": "Bar"
}
{
"id": 123,
"bar": "Foo"
}
我只对第二个元素感兴趣,我需要通过'索引来查询'元素(即我不知道元素将包含哪些字段)。
如何使用jq
实现此目的?
答案 0 :(得分:3)
根据您拥有的jq版本,有几种可能的答案,所以在这里我将重点介绍一个通用且有用的答案。
使用-s
(“slurp”)选项获取第二个JSON实体,如jq -s '.[1]'
在jq 1.4及更高版本中,jq过滤器.[]
在对象上使用时会保留键的顺序。 (如果你对密钥名称一无所知,使用jq 1.3,你可能会失败。)例如,使用jq 1.4或更高版本:
$ jq '.[]'
{"b":1, "a":2}
1
2