BrowserTools
Publicidade
Início / Validadores / Validador e Formatador JSON

Validador e Formatador JSON

Valida, formata e minifica JSON no teu navegador com localizações de erro detalhadas.

A carregar Validador e Formatador JSON… Se nada acontecer, ativa o JavaScript.

JSON (JavaScript Object Notation) é um formato de intercâmbio de dados leve e legível por humanos, baseado num subconjunto da sintaxe de JavaScript. Foi popularizado por Douglas Crockford no início dos anos 2000 como uma alternativa mais simples ao XML para trocar dados entre clientes e servidores web. Normalizado como RFC 4627 em 2006 e mais tarde como ECMA-404 e RFC 8259, o JSON tornou-se a língua universal das API web, dos ficheiros de configuração e do armazenamento de dados. Os seus seis tipos de valor (cadeia, número, booleano, null, array e objeto) correspondem de forma limpa às estruturas de dados de praticamente todas as linguagens de programação.

Exemplos

Entrada {"name":"Ada","age":36}
Saída Valid · object with 2 keys
Entrada {'name': 'Ada'}
Saída Invalid · property names must use double quotes

O JSON é mais estrito do que um literal de objeto de JavaScript: sem plicas, sem vírgulas finais.

Perguntas frequentes

O meu JSON é enviado para um servidor?
Não. A análise e a formatação acontecem inteiramente no teu navegador usando as funções nativas JSON.parse e JSON.stringify integradas no motor de JavaScript. Os teus dados nunca saem do teu dispositivo, o que torna seguro usar esta ferramenta com respostas de API, exportações de bases de dados ou quaisquer cargas JSON confidenciais.
Quais são as regras exatas que tornam um JSON válido?
O JSON tem uma gramática estrita definida pelo RFC 8259 e pelo ECMA-404. As chaves têm de ser cadeias entre aspas duplas. Os valores de cadeia têm de usar aspas duplas, não plicas. As vírgulas finais depois do último elemento de um objeto ou array são proibidas. Não são permitidos comentários. Os números não podem ter zeros à esquerda nem um ponto decimal final. O documento tem de conter exatamente um valor de nível superior (um objeto, array, cadeia, número, booleano ou null).
Qual é a diferença entre formatar e minificar JSON?
Formatar (também chamado embelezar) acrescenta mudanças de linha e indentação para tornar a estrutura visualmente clara e fácil de ler para as pessoas. Minificar remove todo o espaço em branco desnecessário (espaços, tabulações e mudanças de linha) para produzir a cadeia JSON válida mais compacta. O JSON minificado é usado em respostas de API de produção e ficheiros de configuração onde cada byte de largura de banda ou armazenamento conta; o JSON formatado é usado no controlo de versões, na documentação e na depuração.
Em que difere o JSON da sintaxe de literal de objeto de JavaScript?
O JSON é um subconjunto estrito da sintaxe de valores de JavaScript, mas os dois não são idênticos. O JSON exige chaves e valores de cadeia entre aspas duplas; os literais de objeto de JavaScript permitem chaves sem aspas ou entre plicas. O JSON proíbe vírgulas finais, comentários, valores undefined, funções e chaves do tipo símbolo, todos válidos em JavaScript. O JSON.parse é deliberadamente estrito quanto a estas regras para que o JSON possa ser analisado em segurança por sistemas que não sejam JavaScript.
Que tamanho de JSON posso validar e formatar?
A ferramenta aceita JSON de qualquer tamanho, mas existem limites práticos. Cargas até alguns megabytes são analisadas e formatadas em milissegundos. Documentos muito grandes (dezenas de megabytes ou mais) podem causar atrasos percetíveis ou pressão de memória no separador do navegador. Para processar ficheiros JSON extremamente grandes (registos de servidor, exportações de dados), ferramentas de linha de comandos como o jq são mais apropriadas.
O validador suporta JSON5 ou JSONC (JSON com comentários)?
Não. Esta ferramenta usa a gramática JSON estrita definida pelo RFC 8259, que proíbe comentários e vírgulas finais. JSON5 e JSONC são extensões não oficiais que permitem estas funcionalidades. Muitos formatos de ficheiros de configuração (o tsconfig.json do TypeScript, as definições do VS Code) usam JSONC, mas são analisados por analisadores especializados mais permissivos do que o JSON.parse padrão. Se a tua entrada usa estas extensões, precisas de um analisador JSONC ou JSON5.
Posso usar isto para formatar JSON dentro de uma cadeia (JSON com escape)?
Se tens uma cadeia JSON incorporada dentro de outra cadeia JSON, com as aspas internas escapadas como \", terás primeiro de descodificar o JSON exterior para extrair a cadeia interna e depois analisá-la e formatá-la separadamente. Um cenário comum são as mensagens de erro de API que incluem uma carga JSON em bruto como valor de cadeia. Podes colar todo o documento exterior, copiar o valor de cadeia escapado e colá-lo para uma segunda passagem de formatação.
JSON é o mesmo que BSON ou MessagePack?
Não. O JSON é um formato de texto; o BSON (JSON binário) e o MessagePack são formatos de serialização binária que codificam os mesmos tipos lógicos de dados que o JSON, mas numa representação binária compacta em vez de texto UTF-8. O BSON é usado internamente pelo MongoDB e suporta tipos adicionais como datas e dados binários. O MessagePack é usado para comunicação de alto desempenho entre serviços. Uma ferramenta JSON não consegue analisar BSON nem MessagePack diretamente.
Porque é que a mensagem de erro só mostra o primeiro erro?
O JSON.parse para no primeiro erro de sintaxe que encontra, porque os tokens seguintes podem ser inanalisáveis no contexto: corrigir o primeiro erro pode tornar válido o resto do documento ou revelar erros completamente diferentes. É o mesmo comportamento da maioria dos analisadores JSON. Corrige o erro indicado e volta a validar; se houver mais erros, aparecem um de cada vez.
Qual é um erro comum que invalida o JSON?
O erro mais frequente é uma vírgula final depois da última propriedade de um objeto ou do último elemento de um array, por exemplo, {"a": 1,} ou [1, 2, 3,]. Isto é válido em JavaScript e em muitos formatos de configuração, mas explicitamente proibido em JSON. Outros erros comuns incluem usar plicas para as cadeias, acrescentar um comentário // e esquecer de pôr aspas nos nomes das propriedades. A mensagem de erro do JSON.parse aponta para a posição exata do caractere onde a análise falhou.

Sobre Validador e Formatador JSON

O JSON é incontornável no desenvolvimento moderno. As API REST devolvem respostas JSON. Os ficheiros de configuração de ferramentas como ESLint, TypeScript e npm usam JSON. As bases de dados NoSQL como o MongoDB guardam documentos como BSON (JSON binário). As cargas úteis de eventos de funções serverless são objetos JSON. Os programadores precisam regularmente de inspecionar, formatar ou validar JSON vindo de respostas de API, exportações de bases de dados, ficheiros de registo, cargas de webhooks e modelos de configuração. Uma única vírgula mal colocada ou um parêntese sem par invalida todo o documento, e o JSON minificado em bruto de uma API de produção é quase impossível de ler sem formatação.

Este validador e formatador de JSON analisa a tua entrada localmente no navegador usando a função nativa JSON.parse, o mesmo analisador que cada ambiente de execução de JavaScript usa. Realça a linha e a coluna exatas de qualquer erro de sintaxe para que possas encontrar e corrigir os problemas de imediato. Uma vez válido, a ferramenta imprime o JSON com indentação configurável para melhorar a legibilidade, ou minifica-o removendo todo o espaço em branco desnecessário para reduzir o tamanho da carga. Como tudo corre no teu navegador, os teus dados JSON, que podem conter chaves de API, registos de utilizadores ou dados comerciais confidenciais, nunca são enviados para nenhum servidor.

Os erros comuns de JSON incluem vírgulas finais depois do último elemento de um array ou objeto (válidas em JavaScript mas proibidas em JSON), cadeias entre plicas (o JSON exige aspas duplas) e comentários (o JSON não tem sintaxe de comentários, ao contrário do JSONC ou JSON5). Números com zeros à esquerda (como 007) também são inválidos. Se trabalhas com um formato que estende o JSON com estas funcionalidades, precisas de um analisador JSONC ou JSON5; o JSON.parse padrão rejeita-os.

Como o JSON conquistou a web

O JSON foi criado e popularizado por Douglas Crockford, que registou o domínio json.org em 2001 e começou a defender o JSON como uma alternativa leve ao XML para troca de dados com AJAX. A ideia-chave de Crockford foi que a sintaxe de literais de objeto e array do JavaScript já era um formato de dados válido; só precisava de ser documentada, restringida a tipos seguros e promovida. Afirmou de forma célebre que «descobriu» o JSON em vez de o inventar, notando que a sintaxe já estava latente no próprio JavaScript.

Apesar da sua simplicidade, o caminho do JSON para a normalização foi surpreendentemente polémico. Crockford publicou-o inicialmente sob uma licença que incluía a frase «O software será usado para o Bem, não para o Mal», o que levou algumas organizações de código aberto a classificá-lo como não livre. Quando a ECMA formalizou o JSON como ECMA-404 em 2013 e o IETF publicou o RFC 8259 em 2017, usaram uma licença limpa, mas Crockford manteve a cláusula «o Bem, não o Mal» na especificação original de json.org, criando uma nota de rodapé persistente (e algo humorística) sobre licenciamento na história dos padrões web.

Hoje, o JSON é talvez o formato de dados mais analisado que existe. Todas as principais linguagens de programação incluem um analisador JSON na sua biblioteca padrão. As API REST, as respostas GraphQL, as bases de dados NoSQL, os ficheiros de configuração, os sistemas de agregação de registos e os barramentos de eventos serverless usam o JSON como formato nativo. A ironia é que o JSON, concebido para ser mais simples do que o XML, se tornou tão omnipresente que à sua volta cresceram ecossistemas inteiros de formatos próximos do JSON (JSON5, JSONC, NDJSON, JSON Schema, JSON Pointer, JSON Patch) para colmatar as suas limitações.

Publicidade
Publicidade
Publicidade