Ferramentas JSON

Testador de JMESPathselecione os dados e monte a saída

Execute o filtro de idade pelo botão ou com Ctrl/Cmd+Enter. Depois de editar, rode a consulta novamente para exportar.

Testador de JMESPath

JSON de entrada

Resultado

Prévia em blocos de 5.000 caracteres. Cópia e download incluem o resultado completo.

JSON e expressões ficam na memória do navegador, sem armazenamento.

jmespath.js 0.16.0 oficial · Patches de segurança · 26 funções padrão

Resultado desatualizado; cópia e download desativados.

O Testador de JMESPath ajuda a validar a saída antes de colocar uma consulta no script. Uma resposta da nuvem pode conter dezenas de campos, mas a próxima etapa precisar apenas de nomes e uma contagem.

Uma Expressão JMESPath retorna um valor JSON: objeto, lista ou escalar. Use seus dados JSON para comparar a projeção de uma propriedade com a criação de um objeto, sem alterar o documento de origem.

Por que usar este Testador de JMESPath

Filtre antes de projetar campos

A condição mantém as pessoas desejadas e a projeção extrai seus nomes. Projeções descartam resultados null; por isso, o tamanho da saída pode ser menor que a quantidade de elementos avaliados.

Registros passam por um filtro e os campos selecionados compõem uma lista menor.

Prepare o formato esperado

Junte nomes e contagem no mesmo objeto ou ordene por uma propriedade. O Testador de JMESPath permite conferir as chaves e os tipos que o próximo comando receberá, antes de mover a expressão para o terminal.

Campos formam um novo objeto e uma função reduz uma coleção a um valor.

Confira tipos e resultados atualizados

01

Prepare JSON estrito

Cole o texto ou importe um arquivo local de até 500.000 bytes. A entrada decodificada aceita 500.000 caracteres. Importar, carregar exemplo e limpar exigem aplicar uma prévia; uma ação de desfazer restaura também expressão e resultado. Arquivos devem conter UTF-8 válido. O BOM não é removido e causa erro na validação JSON.

02

Execute após cada alteração

A execução é manual, inclusive por Ctrl/Cmd+Enter. Selecionar uma consulta de exemplo muda apenas a expressão. Qualquer edição torna a saída anterior desatualizada e bloqueia a exportação até uma nova execução bem-sucedida.

03

Distinga prévia de resultado

null, false, 0, uma string vazia e [] podem ser resultados válidos. A prévia cresce em blocos de 5.000 caracteres; cópia e download incluem todo o resultado aceito, mesmo que parte ainda não esteja visível.

Seleção, construção e cálculo

Filtrar por valores numéricos

people[?age >= `18`].name compara a idade e projeta os nomes. Literais numéricos ficam entre crases. Uma string contendo dígitos não passa a ter o mesmo tipo de um número.

Criar propriedades de saída

{names: people[].name, count: length(people)} monta um objeto com uma lista e uma contagem. Listas de seleção múltipla podem manter posições null que uma projeção descartaria.

Combinar pipes e funções

O pipe passa o resultado completo da esquerda para a direita. sort_by aceita &age como referência de expressão, diferente de uma string com o nome do campo. Cada função exige tipos específicos nos argumentos.

Separar erros de valores vazios

JSON inválido, sintaxe, função desconhecida, quantidade de argumentos e tipos incorretos têm erros distintos. Consultar uma chave ausente pode retornar null com sucesso, sem gerar erro de sintaxe.

Sintaxe aceita e limites reais

Implementação e funções definidas
O motor é o jmespath.js 0.16.0 oficial, com patches de segurança e 26 funções padrão. Não aceita JSONPath, jq, group_by, extensões regex, funções personalizadas nem JavaScript arbitrário. As crases devem conter JSON estrito; strings brutas usam aspas simples. Referências de expressão servem apenas como argumentos, não como valores de saída.
Sem aritmética decimal exata
Chaves repetidas, comentários e vírgulas finais são rejeitados. Inteiros inseguros e estouro numérico na entrada, nos literais ou no resultado causam erro. Decimais usam números JavaScript e não preservam a escrita original. Somas intermediárias inseguras em sum ou avg são rejeitadas mesmo que o valor matemático final fosse seguro.
Execução limitada
São aceitos 500.000 caracteres de entrada, 2.000 de expressão e 2.000.000 de saída, além dos limites de estrutura e avaliação. O Worker para após 2 segundos. Exceder um limite não libera uma saída parcial para download.
Valores, não caminhos de origem
A saída é um valor JSON, não uma lista de caminhos normalizados. Não há busca recursiva JSONPath, edição da fonte ou exportação CSV. Um campo ausente e um null explícito podem produzir o mesmo resultado.
Somente memória do navegador
Não há histórico salvo, busca por URL ou link de compartilhamento com dados. Arquivos locais são processados no navegador; recarregar a página descarta o trabalho atual.

Dúvidas sobre o Testador de JMESPath

Como obter vários valores?

Use uma lista ou um objeto de seleção múltipla, como {names: people[].name, count: length(people)}. Ele reúne uma lista e um número em uma nova estrutura, sem modificar o documento de entrada.

Como renomear propriedades em uma consulta?

Em people[].{label: name}, label é o nome novo e name é a propriedade lida. Se ela não existir, o objeto construído pode conter null nesse campo.

Como obter propriedades em uma matriz?

people[].name projeta name sobre os elementos do array. Resultados null são omitidos nessa projeção. Confira o nível do array e a grafia da propriedade quando a lista não for a esperada.

Quais funções posso usar?

O Testador de JMESPath oferece as 26 funções padrão do jmespath.js 0.16.0, como length, sort_by, contains e sum. group_by não faz parte desse conjunto. Argumentos com tipos incompatíveis produzem erros.

Como funcionam as expressões de pipe?

people[].name | [0] primeiro produz a lista completa de nomes e depois seleciona o primeiro elemento. O pipe transmite um valor JSON e não executa comandos do sistema.

Alguma consulta foi interpretada incorretamente?

Comece com uma consulta pequena

No Testador de JMESPath, altere uma condição do exemplo e confira o tipo retornado antes de usar uma resposta maior.