Playground jq
Cole JSON, escreva um filtro jq e veja o resultado instantaneamente. Roda o jq real compilado para WebAssembly, inteiramente no seu navegador.
Seu JSON é processado localmente pelo jq rodando como WebAssembly no seu navegador e nunca é enviado, mas evite colar segredos ou dados de produção em qualquer ferramenta.
Precisa de um JSONPath em vez de jq? Experimente o Avaliador JSONPath.
Sobre Playground jq
Este playground jq permite rodar filtros jq contra JSON sem instalar nada. Cole um documento JSON, digite uma expressão como .users | map(.name), .[] | select(.active) ou group_by(.type), e o resultado aparece enquanto você digita. É o jq 1.8.2 real compilado para WebAssembly, então os mesmos filtros, funções e sintaxe de pipe que você usa na linha de comando funcionam aqui, incluindo map, select, sort_by, group_by, to_entries e interpolação de strings. Ative a saída bruta (-r) para remover as aspas dos resultados de string, ou a saída compacta (-c) para colocar cada valor em uma linha. Erros de compilação e de execução do jq são exibidos para que você corrija um filtro rapidamente. Como o jq roda como WebAssembly dentro da página, o JSON que você cola é processado localmente no seu dispositivo e nunca é enviado para um servidor.
Recursos
- Roda o jq 1.8.2 real compilado para WebAssembly, não uma reimplementação parcial
- Resultados ao vivo em uma mudança com debounce, mais um botão Executar e Cmd/Ctrl+Enter
- Botão de saída bruta (-r) para emitir strings sem aspas
- Botão de saída compacta (-c) para um valor por linha
- Erros claros de compilação e execução do jq exibidos a partir do stderr
- Filtros de exemplo clicáveis (map, select, group_by, length, sort) que preenchem a consulta
- Copie a saída com um clique
- O WASM carrega apenas quando você roda um filtro pela primeira vez, depois fica aquecido
Como usar Playground jq
- Cole ou digite seu JSON na caixa JSON.
- Escreva um filtro jq na caixa de filtro, por exemplo .users | map(.name).
- Acompanhe a saída atualizar, ou pressione Executar / Cmd+Enter para avaliar imediatamente.
- Ative a saída bruta (-r) ou compacta (-c) se precisar de formatação diferente.
- Clique em Copiar para pegar o resultado.
Exemplo
Entrada
{
"users": [
{ "name": "Ada", "active": true },
{ "name": "Linus", "active": false }
]
}
Saída
[
"Ada"
]
O filtro .users | map(select(.active)) | map(.name) mantém apenas os usuários ativos e retorna seus nomes.
Erros comuns e solução de problemas
- O jq informa um erro de sintaxe como "Unexpected end of input" ou "unexpected token". — Verifique no filtro um colchete ou pipe desbalanceado, por exemplo .[ deveria ser .[] ou .[0]; o jq analisa a expressão inteira antes de executá-la.
- "Cannot iterate over null" ou "Cannot index ... with ...". — O caminho não existe nos seus dados. Use acesso opcional como .users[]? ou .field // empty, e confirme que os nomes das chaves combinam com o seu JSON.
- A saída de string ainda tem aspas ao redor. — Isso é a saída JSON normal. Ative a saída bruta (-r) para emitir a string sem aspas, que costuma ser o que você quer ao redirecionar para um shell.
- A saída está vazia mesmo que o filtro pareça correto. — Seu filtro pode não ter produzido nenhum valor (por exemplo um select que não correspondeu a nada). Experimente o filtro de identidade . primeiro para confirmar que o JSON é analisado, depois vá restringindo.
Perguntas frequentes
- Isso roda o jq real?
- Sim. Ele roda o jq compilado para WebAssembly, então é o motor jq de verdade, não uma reimplementação em JavaScript. Os filtros, as funções embutidas e a semântica de pipe correspondem ao jq que você roda em um terminal.
- Qual versão do jq tem suporte?
- jq 1.8.2, via a build jq-wasm. Funções e sintaxe disponíveis no jq 1.8 — como group_by, to_entries, ltrimstr e interpolação de strings com \(...) — funcionam aqui.
- O que os botões de saída bruta (-r) e compacta (-c) fazem?
- A saída bruta (-r) imprime resultados de string sem as aspas ao redor, correspondendo à flag -r do jq. A saída compacta (-c) imprime cada valor JSON em uma única linha em vez de formatá-lo, correspondendo à flag -c do jq.
- Meu JSON é enviado para algum lugar?
- Não. O jq roda como WebAssembly dentro desta página, então o JSON que você cola e o filtro que você escreve são avaliados localmente no seu dispositivo e não são enviados para um servidor.
- Por que a primeira execução é um pouco mais lenta?
- O módulo WebAssembly do jq é baixado e inicializado na primeira vez que você roda um filtro, e é por isso que você vê um breve estado de carregamento. Depois disso ele fica na memória e as execuções seguintes são rápidas.
- Posso rodar filtros com select, map e group_by?
- Sim. Expressões como .[] | select(.active), .users | map(.name) e group_by(.type) funcionam, junto com o resto das funções de filtragem, transformação e agregação do jq.
Ferramentas relacionadas
- Formatador de JSON — Embeleze, minifique e valide JSON com a localização dos erros.
- Avaliador JSONPath — Teste expressões JSONPath contra o seu JSON e veja valores e caminhos correspondentes ao vivo.
- Visualizador de JSON — Visualizador de texto e árvore recolhível com expandir/recolher e caminhos de nós.
- JSON Flatten — Achate JSON aninhado em chaves com notação de ponto ou desfaça de volta, no seu navegador.
- JSON Diff — Compare dois documentos JSON e veja um diff estrutural do que mudou.
- YAML ↔ JSON — Converta YAML para JSON e vice-versa.
Todas as ferramentas de ArrayKit