22 de novembro de 2021

Fazendo queries em JSON com jq

O jq é uma ferramenta de linha de comando que permite fazer queries e transformações em arquivos JSON. Ela é muito interessante e útil quando queremos buscar dados diversos em arquivos muito grandes. Para utilizar ela é muito simples, após instalada você já pode fazer a query. Vamos usar de exemplo este JSON.

A primeira coisa que podemos fazer é utilizar ele apenas para formatar, para isso basta executarmos o comando cat exemplo.json | jq:


O que temos aqui é uma lista de objetos, vamos então listar o nome de todas as pessoas dessa lista cat exemplo.json | jq .[].name:
Como podemos ver é muito simples, usamos o . (ponto) para indicar que estamos operando na raiz, os colchetes são para operações em lista, podemos especificar o índice passando algo como [1], ou até inicio e fim com [2:4]. Outra operação que podemos fazer é saber o tamanho de array usando o length cat exemplo.json | jq "length":
Podemos inclusive criar condicionais utilizando o jq, por exemplo baseado na operação de tamanho que fizemos anteriormente cat exemplo.json | jq 'if .[].name == "Tanya Villarreal" then "Achou" else "Não Achou" end':

Podemos interpolar strings cat exemplo.json | jq '"O nome é \(.[].name)"':

Além dessas possibilidades o jq permite fazer diversas outras operações, como operações matemáticas, pipelines, maps e muito mais. Um lugar para aprender a usa-lo e treinar pode ser o jq play, uma versão online que permite treinar e até usar o jq sem instalar.]

Há também implementações do jq dentro de linguagens, mas pode ser algo não tem performático do que usar as próprias estruturas de dados inerentes a própria linguagem.

Nenhum comentário:

Postar um comentário