Podem me chamar de velho hahahha mas ainda sou fã do bom e velho (não tão velho assim) jq
https://stedolan.github.io/jq/.
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:
```bash
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` é:
```shell
jq [options] [arquivo...]
jq [options] [strings...]
jq [options] [JSON_TEXTS...]
```
# Formatar o Json
Bem simples, só redirecionar a saída do `curl` para o `jq`... e simples assim...
```shell
curl --silent "https://query1.finance.yahoo.com/v11/finance/quoteSummary/aapl?modules=financialData" | jq
```
# Acessar Propriedades
```shell
curl --silent "https://query1.finance.yahoo.com/v11/finance/quoteSummary/aapl?modules=financialData" | jq ".quoteSummary.result"
```
# Vertores em JSON
## Iterar Vetores
```shell
curl --silent "https://query1.finance.yahoo.com/v11/finance/quoteSummary/aapl?modules=financialData" | jq ".quoteSummary.result[] | .financialData.profitMargins"
```
## Acessar pelo índice
```shell
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
```shell
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!
```bash
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 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!
jq é duca!! dá uma olhada nisto: [bash-api-test](https://www.tabnews.com.br/paulojeronimo/aprenda-bash-httpie-e-jq-no-teste-de-apis-usando-o-bash-api-test-em-android-utilizando-o-termux)