Executando verificação de segurança...
Em resposta a JSON de forma visual
3
Carregando publicação patrocinada...
1
1

Eu uso o jq em shell scripts. Eu acho ele bem tranquilo de usar. Chegou a ler a manpage dele? Lá tem tudo bem detalhado.

Um exemplo útil seria consumir a API do tabnews. Listando o título dos últimos 5 posts da página de relevantes em shell script:

curl -s 'https://www.tabnews.com.br/api/v1/contents?page=1&per_page=5&strategy=relevant' | jq '.[]["title"]'
1

Vamos lá...

No meu workflow, eu uso muito para formatar, procurar valores e validar dados em resultados das APIs que eu sou responsável.

Aqui são alguns exemplos do que eu uso.

Lembrando, que o jq interpreta o JSON que vem pelo stdin da console ou através de um arquivo que vc passa como parâmetro $2. A sitáxe básica do jq é:

jq [options] <filtros|patterns|comandos|funções|e tudo q há de bom> [arquivo...]
jq [options] <filtros|patterns|comandos|funções|e tudo q há de bom> [strings...]
jq [options] <filtros|patterns|comandos|funções|e tudo q há de bom> [JSON_TEXTS...]

Formatar o Json

Bem simples, só redirecionar a saída do curl para o jq... e simples assim...

curl --silent "https://query1.finance.yahoo.com/v11/finance/quoteSummary/aapl?modules=financialData" | jq

Acessar Propriedades

curl --silent "https://query1.finance.yahoo.com/v11/finance/quoteSummary/aapl?modules=financialData" | jq ".quoteSummary.result"

Vertores em JSON

Iterar Vetores

curl --silent "https://query1.finance.yahoo.com/v11/finance/quoteSummary/aapl?modules=financialData" | jq ".quoteSummary.result[] | .financialData.profitMargins"

Acessar pelo índice

curl --silent "https://query1.finance.yahoo.com/v11/finance/quoteSummary/aapl?modules=financialData" | jq ".quoteSummary.result[0] | .financialData.operatingMargins"

Usar funções do JQ

Como por exemplo, listar todas as chaves de um objeto JSON

curl --silent "https://query1.finance.yahoo.com/v11/finance/quoteSummary/aapl?modules=financialData" | jq ".quoteSummary.result[0].financialData | keys"

Kubernetes com JQ

Copiar Secrets de um namespace para outro

Ok, bem nichado esse exemplo, mas é bem util!

kubectl get secrets -o json --namespace | \ jq '.items[].metadata.namespace = ""' | \ kubectl create-f -

Listar status de todos os seus pods de uma namespace

kubectl -n <namespace> get pods -ojson | jq '.items[].status'

Para saber mais...

Este site, https://www.baeldung.com/linux/jq-command-json tem mais e mais exemplos de uso do jq

Espero ter ajudo a turma.

Abraço!

2