tigtools

Validador de JSON

Cole um JSON para verificar se a sintaxe está de acordo com o padrão JSON. Os erros são indicados com um marcador e uma explicação simples.

Executado no seu navegador Sem cadastro

O resultado aparece aqui assim que você cola o JSON.

Como usar

  1. Cole seu JSON na caixa, abra um arquivo ou clique em “Testar um exemplo” para ver um relatório de erros.
  2. Confira o resultado: uma mensagem verde indica JSON válido; caso contrário, será exibido o primeiro erro, com a linha, a coluna e um marcador abaixo do problema.
  3. Corrija o erro indicado e verifique novamente. O resultado é atualizado enquanto você digita.
  4. Se o JSON for válido, confira as estatísticas: tipo da raiz, número de chaves, profundidade de aninhamento e tamanho em bytes.

Como funciona

O validador verifica a sintaxe de acordo com o padrão JSON (RFC 8259 / ECMA-404) usando o próprio analisador JSON do navegador. Assim, um documento aprovado aqui também é aceito pelo JSON.parse do JavaScript e por analisadores em outras linguagens que seguem o padrão. Se a análise falhar, um verificador rigoroso criado para esta ferramenta percorre o texto uma vez para encontrar o primeiro erro e sua linha e coluna exatas; em seguida, exibe a linha com um marcador ^ sob o problema.

As dicas se concentram nos erros mais comuns ao escrever JSON manualmente ou copiá-lo do JavaScript: vírgula após o último item, strings entre aspas simples, chaves sem aspas, comentários // ou /* */, valores como NaN, Infinity ou undefined, quebras de linha não escapadas dentro de strings e dois documentos JSON colados um após o outro (como em arquivos JSON Lines). Apenas o primeiro erro é informado, pois um erro costuma afetar tudo o que vem depois dele.

A ferramenta verifica apenas a sintaxe. Ela não valida o documento com um JSON Schema, portanto não pode informar se um campo obrigatório está ausente. Também não avisa sobre chaves duplicadas: o padrão permite que elas existam e a maioria dos analisadores mantém o último valor. As estatísticas contam as chaves de todos os objetos, em todos os níveis; a profundidade é 1 para um objeto ou array simples e aumenta em um a cada nível de aninhamento.

Exemplos

Configuração copiada do JavaScript

{name: 'demo', debug: true,} apresenta um erro na linha 1, coluna 2: “As chaves de objetos devem estar entre aspas duplas”. Depois de colocar a chave entre aspas, a próxima tentativa aponta para a string entre aspas simples e, em seguida, para a vírgula no final.

Arquivo de log com um objeto por linha

Ao colar duas linhas, como {"id":1} e {"id":2}, a ferramenta informa “há mais conteúdo após o fim do valor JSON” na linha 2. Cada linha é um JSON válido por si só (JSON Lines), mas, juntas, elas precisam ser colocadas entre [ ] e separadas por uma vírgula.

Verificação de uma carga útil de API

Uma resposta de 2 MB é validada em instantes e mostra Tipo raiz: Array, 1.500 itens no nível superior e profundidade de aninhamento 4 — uma verificação rápida antes de escrever código para processá-la.

Perguntas frequentes

A ferramenta valida de acordo com um JSON Schema?

Não. A ferramenta verifica se o texto está em formato JSON válido. Para verificar campos obrigatórios, tipos ou formatos, é necessário um validador de JSON Schema, que não está incluído nesta ferramenta.

Por que apenas um erro é exibido?

Após o primeiro erro de sintaxe, o analisador não consegue saber o que o autor pretendia. Por isso, os erros seguintes costumam ser efeitos do primeiro. Corrija o problema indicado; se houver outro, ele aparecerá imediatamente.

Comentários ou vírgulas no final são válidos em algum caso?

Não no JSON. Formatos como JSON5 e JSONC (usados nos arquivos de configuração de alguns editores) permitem comentários, mas os analisadores de JSON padrão os rejeitam. Por isso, eles são indicados como erros aqui.

Um valor único, como 42 ou "hello", é um JSON válido?

Sim. Desde a RFC 7159, qualquer valor JSON pode ser a raiz, não apenas objetos e arrays. Algumas ferramentas e APIs mais antigas ainda esperam um objeto ou array no nível superior.

Por que o número da coluna pode ser diferente do exibido no meu editor?

As colunas são contadas em unidades de código UTF-16, como o JavaScript conta o tamanho de uma string. Emojis e alguns caracteres raros contam como dois, e uma tabulação conta como uma coluna, embora os editores possam exibi-la com mais espaço.

Privacidade

A validação é feita inteiramente no seu navegador. O JSON que você cola ou abre não é enviado, armazenado nem incluído em análises.