Tentei usar uma vez, penei pra caramba pra entender como funciona, no teu dia a dia você usa o jq
?
Poderia dar um exemplo de como ele pode ser útil?
Tentei usar uma vez, penei pra caramba pra entender como funciona, no teu dia a dia você usa o jq
?
Poderia dar um exemplo de como ele pode ser útil?
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"]'
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...]
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
curl --silent "https://query1.finance.yahoo.com/v11/finance/quoteSummary/aapl?modules=financialData" | jq ".quoteSummary.result"
curl --silent "https://query1.finance.yahoo.com/v11/finance/quoteSummary/aapl?modules=financialData" | jq ".quoteSummary.result[] | .financialData.profitMargins"
curl --silent "https://query1.finance.yahoo.com/v11/finance/quoteSummary/aapl?modules=financialData" | jq ".quoteSummary.result[0] | .financialData.operatingMargins"
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"
Ok, bem nichado esse exemplo, mas é bem util!
kubectl get secrets -o json --namespace | \ jq '.items[].metadata.namespace = ""' | \ kubectl create-f -
kubectl -n <namespace> get pods -ojson | jq '.items[].status'
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!
jq é duca!! dá uma olhada nisto: bash-api-test