JSON—JavaScript Object Notation—é o formato ubíquo, baseado em texto, para a troca de dados estruturados. É normalizado tanto pelo IETF como RFC 8259 e pela Ecma International como ECMA-404, que, em conjunto, definem a sintaxe compacta e agnóstica da linguagem que alimenta APIs, registos, configurações e bases de dados modernas.
Um valor JSON é um objeto, um array, uma string, um número, ou um dos literais true, false, ou null; os objetos mapeiam strings para valores e os arrays contêm valores ordenados — com espaços em branco insignificantes permitidos em torno dos caracteres estruturais (RFC 8259, ECMA-404). Embora o JSON tenha origem no JavaScript, é independente da linguagem e suportado em praticamente todo o lado (MDN: JSON). Na transmissão, a codificação de facto e recomendada é UTF-8 (RFC 8259 §8.1). Para maior segurança de interoperabilidade, o perfil I-JSON (RFC 7493) reforça as regras em torno de codificações e gamas numéricas.
Em JavaScript, o objeto global JSON expõe dois cavalos de batalha:JSON.parse (com um reviver opcional) e JSON.stringify (com substituto/espaçamento para impressão bonita), como documentado na MDN (parse, stringify).
A gramática numérica do JSON é decimal, mas a especificação não dita a precisão ou as distinções entre inteiros e flutuantes. As implementações escolhem como representá-los (RFC 8259 §6). Em JavaScript e Node.js, Number é de dupla precisão IEEE-754, o que significa que apenas os inteiros em [−(2^53−1), 2^53−1] são exatamente seguros — consulte Number.MAX_SAFE_INTEGER e o tipo BigInt. É por isso que as APIs públicas enviam frequentemente os IDs como strings e validam explicitamente os "inteiros seguros".
À medida que o uso amadureceu, surgiram padrões para endereçar e modificar JSON no local. JSON Pointer (RFC 6901) é uma sintaxe minúscula, delimitada por barras, para localizar valores (por exemplo, /a/b/0) com regras de escape para ~ e /. JSON Patch (RFC 6902) modela atualizações parciais como operações ordenadas (add, remove, replace, move, copy, test) e viaja como application/json-patch+json. Para diferenças mais simples, JSON Merge Patch (RFC 7386) usa uma fusão em forma de documento: os campos presentes são adicionados/substituídos; definir um campo como null elimina-o. Muitas frameworks suportam uma ou ambas as formas de origem.
O próprio JSON não tem esquema, mas os ecossistemas apoiam-se em esquemas para validação, documentação e geração de código. A família JSON Schema 2020-12 especifica restrições como type, properties, items, e palavras-chave de composição, e alinha-se com OpenAPI 3.1. Para fluxos de trabalho centrados na geração de código, JSON Type Definition (RFC 8927) oferece uma linguagem deliberadamente menos expressiva que se mapeia de forma previsível para os sistemas de tipos convencionais.
O JSON clássico espera um texto completo por carga útil, o que complica o streaming de registos e as respostas de longa duração. Dois padrões ajudam:
application/json-seq.Quando a largura de banda ou a velocidade dominam, os formatos "JSON binário" preservam o modelo de dados do JSON enquanto trocam a legibilidade humana pela eficiência:
Como o JSON é apenas texto, a maioria dos riscos advém da forma como o transporta e manuseia:
<script> com um callback) foi uma solução alternativa pré-CORS para pedidos de origem cruzada, mas é perigoso — executa scripts arbitrários. Prefira CORS com respostas application/json reais (OWASP: Abuso de JSONP).O JSON estreou sob a RFC 4627 (2006); o tipo de multimédia registado é application/json, cuja especificação agora aponta para a RFC 8259. Os parâmetros "charset" nas respostas JSON são geralmente desnecessários porque o UTF-8 é o padrão na Internet pública.
Os programadores querem frequentemente comentários, vírgulas finais ou strings com aspas simples nas configurações. Isso está fora do JSON padrão, mas JSON5 fornece um superconjunto bem documentado para ficheiros editados por humanos. Evite enviar JSON5 através de APIs públicas, a menos que controle ambas as extremidades.
O sucesso do JSON advém de uma pequena área de superfície, amplo suporte de linguagens e um anel de padrões adjacentes — ponteiros, patches, esquemas, sequências — que cobrem as realidades confusas dos sistemas distribuídos. Compreenda os fundamentos (sintaxe, codificação, números), apoie-se nos padrões adjacentes corretos, e continuará a render dividendos em todas as pilhas e serviços (RFC 8259, ECMA-404, RFC 6901, RFC 6902, RFC 7386, JSON Schema, JTD, RFC 7464, NDJSON).
JSON (JavaScript Object Notation) é um formato leve de intercâmbio de dados fácil de ler e escrever para humanos e fácil de analisar e gerar para máquinas. É amplamente usado para transmitir dados em aplicações web.
Formatar JSON o torna legível para humanos adicionando indentação e quebras de linha apropriadas. Isso é especialmente útil ao trabalhar com dados JSON minificados ou comprimidos, depuração ou revisão de respostas de API.
A validação JSON verifica se sua string JSON está em conformidade com a especificação JSON. Ela identifica erros de sintaxe como vírgulas ausentes, colchetes não fechados ou aspas inadequadas, ajudando você a detectar erros cedo.
A visualização de código exibe o JSON formatado como texto com realce de sintaxe, semelhante a como aparece em um editor de código. A visualização em árvore apresenta JSON como uma estrutura interativa e recolhível onde você pode expandir e contrair objetos e arrays aninhados.
Sim! Toda a formatação e validação JSON acontece inteiramente no seu navegador. Seus dados nunca saem do seu computador, garantindo privacidade e segurança completas.
Sim, você pode carregar um arquivo JSON usando o botão 'Abrir arquivo'. A ferramenta lerá o arquivo e exibirá imediatamente a saída formatada.
Os erros JSON comuns incluem: vírgulas ausentes entre pares chave-valor, uso de aspas simples em vez de aspas duplas para strings, vírgulas à direita, colchetes ou chaves não fechados e chaves sem aspas.
Sim, use o botão 'Copiar' para copiar o JSON formatado para sua área de transferência. Isso é útil para colar o JSON limpo em seu código ou documentação.