Como Usar o Validador de JSON
Cole seu JSON na área de entrada e clique em Validar JSON. A ferramenta analisa sua entrada e informa se ela é válida ou identifica o erro de sintaxe específico. Quando o JSON é válido, você vê uma versão formatada na área de saída junto com estatísticas incluindo a contagem total de chaves, profundidade de aninhamento, tipo de dados raiz e tamanho do documento. Use o botão Copiar para copiar a saída formatada para a área de transferência.
Esta ferramenta é essencial para desenvolvedores que trabalham com respostas de API, arquivos de configuração, exportações de banco de dados e quaisquer outros dados JSON. Em vez de esperar por um erro em tempo de execução para informá-lo de que algo está errado com seu JSON, valide-o primeiro e corrija os problemas antes que eles causem problemas downstream.
Entendendo as Regras de Sintaxe JSON
JSON tem uma sintaxe aparentemente simples que engana até desenvolvedores experientes. A especificação requer que todas as strings usem aspas duplas, não aspas simples. As chaves de objetos devem ser strings entre aspas. Arrays e objetos não devem ter vírgulas à direita. Não há comentários de nenhum tipo. Números não podem ter zeros à esquerda (exceto para o valor 0 em si ou decimais como 0.5). Valores booleanos devem ser true ou false em minúsculas, e o valor nulo deve ser null em minúsculas.
Muitos desenvolvedores estão acostumados a escrever literais de objetos JavaScript, que são mais permissivos que JSON. JavaScript permite aspas simples, chaves sem aspas, vírgulas à direita e comentários. Quando desenvolvedores copiam objetos JavaScript e tentam usá-los como JSON, o validador captura essas diferenças imediatamente. Entender a distinção entre objetos JavaScript e JSON é fundamental para trabalhar com APIs web.
Erros Comuns de JSON e Como Corrigi-los
Vírgulas à direita são o erro de JSON mais comum. Em JavaScript, {"a": 1, "b": 2,} é válido, mas em JSON a vírgula à direita após o último valor é um erro de sintaxe. A correção é simplesmente remover a vírgula após o último elemento. Aspas simples são o segundo erro mais comum. JSON requer "hello", não 'hello'. Chaves sem aspas como {name: "John"} devem ser alteradas para {"name": "John"}. Colchetes incompatíveis são mais difíceis de identificar em documentos grandes, que é onde um validador se torna indispensável.
Análise de Contagem de Chaves e Profundidade de Aninhamento
A contagem de chaves indica o número total de propriedades em todos os objetos do seu documento JSON, incluindo aquelas em objetos aninhados. A profundidade de aninhamento mede quantos níveis de profundidade o valor mais profundo está. Essas métricas são úteis para entender a complexidade de uma estrutura de dados. JSON profundamente aninhado com mais de cinco ou seis níveis pode ser difícil de trabalhar e pode indicar que o modelo de dados precisa de reestruturação. Muitas APIs impõem limites de profundidade para prevenir abuso, e conhecer sua profundidade ajuda a permanecer dentro desses limites.
Regras de Sintaxe JSON Explicadas
JSON, abreviação de JavaScript Object Notation, define duas estruturas primárias: objetos e arrays. Um objeto é uma coleção não ordenada de pares chave-valor entre chaves {}. Cada chave deve ser uma string entre aspas duplas, seguida por dois-pontos e um valor. Múltiplos pares chave-valor são separados por vírgulas. Um array é uma lista ordenada de valores entre colchetes [], com cada valor separado por uma vírgula. Ambas as estruturas podem ser aninhadas em qualquer profundidade, permitindo representar dados hierárquicos complexos.
Os tipos de valores permitidos em JSON são estritamente limitados. Um valor pode ser uma string (entre aspas duplas), um número (inteiro ou ponto flutuante, sem zeros à esquerda), um booleano (true ou false, sempre em minúsculas), null (também em minúsculas), um objeto ou um array. Não há outros tipos de valores. Notavelmente, JSON não suporta undefined, datas, expressões regulares, funções ou qualquer outro tipo complexo encontrado em linguagens de programação. Datas são tipicamente representadas como strings ISO 8601 como "2026-04-07T12:00:00Z", e a aplicação é responsável por analisá-las.
A questão da vírgula à direita merece ênfase especial porque é responsável por um número desproporcional de falhas de validação. Em muitas linguagens de programação, uma vírgula após o último elemento de uma lista ou a última propriedade de um objeto é perfeitamente aceitável e até encorajada para diffs de controle de versão mais limpos. JSON, no entanto, proíbe estritamente vírgulas à direita. A entrada {"a": 1, "b": 2,} é JSON inválido e será rejeitada por qualquer analisador em conformidade. Da mesma forma, [1, 2, 3,] falha na validação. Este é um dos erros mais frequentes que desenvolvedores cometem ao editar arquivos JSON manualmente, e é a principal razão para usar um validador antes de enviar dados a uma API ou carregar um arquivo de configuração.
Erros Comuns de Validação JSON em Detalhe
Além das vírgulas à direita, existem várias outras fontes frequentes de erros de validação JSON que vale a pena entender em profundidade. Cada um deriva de uma incompatibilidade entre o que os desenvolvedores esperam que o JSON aceite e o que a especificação realmente permite.
Aspas Ausentes ou Incorretas nas Chaves
Em JavaScript, você pode escrever {name: "Alice"} sem colocar aspas na chave. Em JSON, cada chave deve ser uma string entre aspas duplas: {"name": "Alice"}. Isso é inegociável. Alguns analisadores tolerantes aceitam chaves sem aspas, mas estão violando a especificação, e seus dados quebrarão quando processados por um analisador estrito. Sempre coloque aspas duplas em cada chave nos seus documentos JSON.
Aspas Simples vs. Aspas Duplas
JSON requer aspas duplas para todas as strings, tanto chaves quanto valores. Usar aspas simples como {'name': 'Alice'} é inválido. Este é um erro comum para desenvolvedores Python, já que Python usa aspas simples intercambiáveis com aspas duplas e sua representação str() de dicionários usa aspas simples. Se você está convertendo estruturas de dados Python para JSON, sempre use a função json.dumps() em vez de str(), porque json.dumps() produz corretamente saída com aspas duplas.
Comentários em JSON
A especificação JSON não permite nenhuma forma de comentários, nem de linha única (//) nem de múltiplas linhas (/* */). Esta é uma decisão de design intencional de Douglas Crockford, que criou o JSON. Ele argumentou que comentários estavam sendo usados para conter diretivas de análise, o que causava problemas de interoperabilidade. Se você precisa de comentários em arquivos de configuração, considere JSONC (JSON com Comentários, usado pelo VS Code), JSON5, YAML ou TOML. Quando você encontrar JSON com comentários, remova-os antes de analisar ou use um pré-processador tolerante a comentários.
Caracteres Especiais Não Escapados em Strings
Strings JSON devem escapar certos caracteres com uma barra invertida. Caracteres de controle (caracteres com pontos de código abaixo de U+0020) devem ser escapados. Os mais comuns são novas linhas (\n), tabulações (\t), retornos de carro (\r) e as próprias barras invertidas (\\). Aspas duplas dentro de uma string devem ser escapadas como \". Esquecer de escapar uma barra invertida em um caminho de arquivo Windows como "C:\new\folder" produz uma string JSON inválida porque \n é interpretado como uma nova linha e \f como um avanço de formulário. A representação correta é "C:\\new\\folder". Esse problema surge frequentemente ao incorporar caminhos de arquivo, padrões regex ou trechos HTML dentro de JSON.
Armadilhas na Formatação de Números
Números JSON seguem regras específicas que diferem de algumas linguagens de programação. Zeros à esquerda não são permitidos: 007 é inválido e deve ser escrito como 7. Sinais positivos não são permitidos: +5 é inválido, enquanto -5 é válido. Notação hexadecimal como 0xFF não é suportada. Infinity e NaN não são valores JSON válidos. Se você precisa representar valores numéricos especiais, deve codificá-los como strings ou usar um valor sentinela e lidar com a conversão no código da sua aplicação.
JSON em APIs e Arquivos de Configuração
JSON se tornou o formato dominante de intercâmbio de dados para APIs web. Quando você envia uma requisição POST para uma API REST com um cabeçalho Content-Type: application/json, o servidor espera um corpo JSON estritamente válido. Se o corpo da sua requisição contiver qualquer erro de sintaxe, o servidor tipicamente retornará uma resposta 400 Bad Request, frequentemente com uma mensagem de erro de análise críptica que pode ser difícil de depurar. Validar seu payload JSON antes de enviá-lo elimina toda essa classe de erros e acelera significativamente o desenvolvimento de APIs.
No contexto de APIs REST, a validação de JSON importa em ambas as pontas da comunicação. No lado do cliente, você precisa garantir que os dados que está enviando estão bem formados. No lado do servidor, você precisa validar o JSON recebido antes de processá-lo para evitar que dados malformados corrompam o estado da sua aplicação. Muitos frameworks web realizam análise JSON básica automaticamente, mas validação estrutural, garantindo que os campos corretos existam com os tipos corretos, requer ferramentas adicionais de validação de schema como JSON Schema.
Arquivos de configuração são outro caso de uso importante para JSON. Gerenciadores de pacotes como npm usam package.json, TypeScript usa tsconfig.json, ESLint usa .eslintrc.json e muitos serviços de nuvem como AWS CloudFormation e Azure Resource Manager usam templates JSON. Um erro de sintaxe em qualquer um desses arquivos pode impedir seu pipeline de build de executar, sua aplicação de iniciar ou sua infraestrutura de ser implantada. As consequências são particularmente altas em ambientes de CI/CD onde uma configuração JSON malformada pode bloquear todo um processo de release.
Sistemas de banco de dados também dependem fortemente de JSON. PostgreSQL tem tipos de coluna nativos json e jsonb, MongoDB armazena documentos como BSON (uma forma binária de JSON) e muitos outros bancos de dados suportam consultas JSON. Ao importar dados para esses sistemas, JSON inválido causa falhas de inserção que podem interromper trabalhos de processamento em lote. Validar seus dados JSON antes de carregá-los em um banco de dados economiza tempo e previne importações parciais que deixam seus dados em um estado inconsistente.
Além da validação básica de sintaxe, muitas organizações adotam JSON Schema para definir a estrutura esperada dos seus documentos JSON. JSON Schema permite especificar quais campos são obrigatórios, quais tipos de dados cada campo deve ter, faixas de valores aceitáveis, padrões de strings e mais. Embora esta ferramenta foque na validação de sintaxe, garantir que seu JSON está sintaticamente correto é o primeiro passo essencial antes que qualquer validação em nível de schema possa ocorrer. Um documento que não é analisado corretamente não pode ser validado contra um schema de forma alguma.
Perguntas Frequentes
O que é validação de JSON?
A validação de JSON verifica se uma string está em conformidade com a especificação JSON. O validador analisa sua entrada e informa se ela está bem formada ou identifica o erro de sintaxe específico.
Por que devo validar JSON?
Validar JSON antes de usá-lo previne erros em tempo de execução. Uma única vírgula ausente ou colchete incompatível pode causar falha em requisições de API e carregamento de configurações.
Quais são os erros de JSON mais comuns?
Vírgulas à direita, aspas simples em vez de aspas duplas, chaves sem aspas, vírgulas ausentes entre itens, comentários e colchetes incompatíveis são os erros de JSON mais frequentes.
JSON pode ter comentários?
Não. A especificação JSON não permite comentários. Use JSONC ou YAML se você precisa de comentários nos seus arquivos de configuração.
Qual é o tamanho máximo de um documento JSON?
A especificação não tem limite. Na prática, analisadores de navegadores lidam com centenas de megabytes. Esta ferramenta online funciona bem com documentos de até alguns megabytes.
Save your results & get weekly tips
Get calculator tips, formula guides, and financial insights delivered weekly. Join 10,000+ readers.
No spam. Unsubscribe anytime.