/ / Tratamento de vários “elementos” em um arquivo JSON com jq - json, jq

Manipulando vários "elementos" em um arquivo JSON com jq - json, jq

Eu tenho um arquivo JSON que consiste em vários "elementos" JSON-, por exemplo,

{
"name": "Name 1",
"foo": "Bar"
}
{
"id": 123,
"bar": "Foo"
}

Estou interessado apenas no segundo elemento e preciso consultar o "índice" do elemento (ou seja, não sei quais campos o elemento conterá).

Como faço para conseguir isso com jq?

Respostas:

2 para resposta № 1

Existem várias respostas possíveis, dependendo da versão do jq que você possui, então aqui vou me concentrar em uma resposta genérica e geralmente útil.

  1. Use o -s ("slurp") para obter a segunda entidade JSON, como em jq -s ".[1]"

  2. No jq 1.4 e posterior, o filtro jq .[] quando usado em objetos preserva a ordem das chaves. (Usando o jq 1.3, você pode ficar sem sorte se não souber nada sobre os nomes das chaves.) Por exemplo, usando o jq 1.4 ou posterior:

$ jq ".[]" {"b":1, "a":2} 1 2