Nos meus dias de WP Adminify, foi lançado um ticket de suporte que dizia simplesmente: & quot; Importação de configurações quebrada. Nada funciona." O usuário editou manualmente um arquivo de configurações exportado - uma vírgula final na linha 217 de um blob JSON de 9.000 linhas - e meu importador respondeu com o mundo & #39; erro menos útil: Falha na importação.
Eu escrevi essa mensagem de erro. Isso é por minha conta.
Nós dois levamos 40 minutos de ida e volta para encontrar uma vírgula que um formatador decente teria marcado em meio segundo. Esse ticket mudou a forma como penso sobre as ferramentas JSON e, anos depois, ele moldou como construí o formatador json No Toolz.dev: a localização do erro não é uma boa opção. É o produto inteiro.
Este guia aborda como formatar JSON online, por que a formatação falha e as armadilhas de sintaxe que comem todos e #39; eventualmente - incluindo o meu.
tl;dr: Para formatar o JSON Online, cole-o em uma ferramenta do lado do cliente, como o Formatador Toolz.dev JSON- ele gratly-prints instantaneamente, sinaliza erros de sintaxe com números de linha, e nunca carrega seus dados Se a formatação falhar, você quase certamente tem uma vírgula à direita, aspas simples ou uma chave não citada Use indentação de 2 espaços, a menos que sua equipe diga o contrário.
O que "formatar JSON" realmente faz?
Formatação - pretty-printing, se você & #39;re feeling fancy - adiciona recuo e quebra de linha para que a estrutura se torne visível Os dados não & #39; t mudam por um único bit It & #39; s uma transformação de apresentação, nada mais.
isto:
{"employees":[{"firstName":"John","lastName":"Doe","department":"Engineering","skills":["JavaScript","Python","Docker"]},{"firstName":"Jane","lastName":"Smith","department":"Design","skills":["Figma","CSS","Illustration"]}],"company":"Acme Corp","founded":2015}
torna-se isto:
{
"employees": [
{
"firstName": "John",
"lastName": "Doe",
"department": "Engineering",
"skills": ["JavaScript", "Python", "Docker"]
},
{
"firstName": "Jane",
"lastName": "Smith",
"department": "Design",
"skills": ["Figma", "CSS", "Illustration"]
}
],
"company": "Acme Corp",
"founded": 2015
}
dados idênticos. Mas apenas um deles permite que você veja rapidamente que Jane está no design.
Há um bônus que a maioria das pessoas não pensa: a formatação também é validação disfarçada. Um formatador precisa analisar seu documento para reformá-lo; portanto, se o JSON estiver quebrado, um bom formatador informará a você onde- que é a verdadeira razão para usar um em vez de apertar os olhos.

Como formatar o JSON online na prática?
Todo o fluxo de trabalho é de cerca de quinze segundos:
- copie o json de onde quer que ele viva - guia Rede DevTools (clique com o botão direito em uma solicitação → Copiar resposta),
curlsaída, um arquivo de log, uma mensagem de folga de um colega. - abra o formatador json. Sem inscrição, sem login. Ele carrega e você cola.
- Leia a saída. O JSON válido volta recuado e destacado com sintaxe, com seções dobráveis para documentos grandes. JSON inválido Obtém um erro com um número de linha e uma descrição em inglês simples.
- Copie ou baixe. Um clique de qualquer maneira.
Isso' s it. A parte interessante é & #39; t o caminho feliz - it& #39; s passo 3 quando as coisas dão errado Então deixe & #39; s dar errado.

Por que meu JSON não está formatando?
Se um formatador recusar seu JSON, o documento viola a gramática em RFC 8259. Na minha experiência - tanto pela minha própria depuração quanto pela construção da ferramenta em que as pessoas colam seu JSON quebrado - ele e #39; é quase sempre uma das cinco coisas.
1. Traseira de vírgulas
{
"name": "Alice",
"age": 30,
}
SyntaxError: Unexpected token } in JSON at position 34
JavaScript permite isso. JSON nunca o fez. Exclua a vírgula após o último item em cada objeto e matriz:
{
"name": "Alice",
"age": 30
}
Esta é a minha vírgula de suporte. Respeite-o.
2. Aspas simples
{ 'name': 'Alice' }
O clássico Python Tell. str(my_dict) Produz pseudo-JSON com uma só vez; json.dumps(my_dict) produz a coisa real Se você & #39; estiver vendo aspas simples em algo que afirma ser JSON, alguém imprimiu um ditado em vez de serializá-lo - I & #39; fiz isso, você & #39; fiz isso, nós & #39; todos farão isso de novo.
{ "name": "Alice" }
3. Balanças invertidas sem escapamento
{ "path": "C:\new\test" }
Parece inofensivo. mas \n é uma nova linha e \t é uma guia, então ela analisa um caminho com quebras de linha reais - ou falha completamente em sequências como \x. Os caminhos do Windows são a vítima número um:
{ "path": "C:\\new\\test" }
4. Colchetes incompatíveis
{
"users": [
{"name": "Alice"},
{"name": "Bob"}
}
desaparecido ]. Trivial aqui, brutal em uma configuração aninhada com seis níveis de profundidade. Esta é uma categoria de erro que os humanos são genuinamente ruins em encontrar e os analisadores encontram instantaneamente - terceirize-o.
5. Valores JavaScript que não são JSON
{ "value": undefined, "count": NaN }
undefined, NaN, e Infinity são JavaScript, não JSON. JSON.stringify Converte silenciosamente NaN até null e gotas undefined propriedades inteiramente - o que significa que o bug geralmente é & #39; t no JSON you& #39; re looking at, it& #39; s upstream em qualquer que tenha produzido Use null explicitamente e verifique seu serializador.
o formatador Pega todos os cinco com o número da linha anexado. Essa última frase é o motivo pelo qual essa categoria de ferramenta existe.
Você deve usar 2 espaços, 4 espaços ou guias?
O debate eterno, edição JSON. Aqui está a comparação honesta:
| 2 espaços | 4 espaços | guias | |
|---|---|---|---|
| ecossistema | JavaScript/TypeScript, npm, React | Python, Java, .NET | Vá, algum código legado |
| nidificação profunda | fica na tela | corre na borda direita | Depende da largura da guia |
| legibilidade do diferencial | bom | bom | Bom até misturado com espaços |
JSON.stringify ARG padrão |
2 (por convenção) |
4 |
"\t" |
| meu veredicto | Padrão para JSON | Tudo bem se o seu time for Python-first | Não, para JSON especificamente |
Minha posição e eu vou morrer nesta pequena colina: 2 espaços para JSON, independentemente do uso do seu código. Ninhos JSON mais profundos do que o código-fonte típico - respostas de API com quatro e cinco níveis de profundidade são normais - e o recuo de 4 espaços os transforma em exercícios de rolagem horizontal Mesmo em equipes com peso Python, defino JSON em 2 espaços e ninguém reclamou duas vezes.
Seja qual for a sua escolha, codifique-o para que o debate termine:
# .editorconfig
[*.json]
indent_style = space
indent_size = 2
insert_final_newline = true
o formatador Suporta ambas as larguras, portanto, combinar a convenção do seu projeto é uma lista suspensa, não uma discussão.
Que tal formatar a linha de comando?
Às vezes, o terminal está mais próximo do que uma guia do navegador. Meu uso real:
# jq — the standard. Install it, learn 10% of it, profit.
curl -s https://api.example.com/users | jq .
# Python — already on basically every machine
curl -s https://api.example.com/users | python -m json.tool
# Node, if you enjoy typing
node -e "console.log(JSON.stringify(JSON.parse(require('fs').readFileSync(0,'utf8')),null,2))" < data.json
Onde cada um ganha, honestamente:
- jq para qualquer coisa roteirizada, repetida ou canalizada - e para extração de campos (
jq '.data.users[].email') em vez de ler documentos inteiros. - A ferramenta do navegador Para one-offs, para qualquer coisa que você desejar explorar com seções dobráveis e para mostrar a um companheiro de equipe - você pode e #39; t compartilhar uma expressão jq com um gerente de projeto.
- Código VS (
Shift+Alt+F) para arquivos JSON que vivem no repositório e estão abertos de qualquer maneira.
Eu uso todos os três diariamente. Qualquer um que lhe diga que um substitui os outros está vendendo algo.
Um hábito que vale a pena roubar: curl -s ... > response.json primeiro, em seguida formate o arquivo. Quando a resposta acaba por ser uma página de erro HTML usando um Content-Type: application/json figurino - acontece mais do que qualquer um de nós gostaria - você' vai querer os bytes originais, não o seu navegador's interpretação deles.
Três técnicas de formatação que a maioria das pessoas pula
Classifique as teclas em ordem alfabética. Os serializadores diferentes emitem chaves em ordens diferentes, o que faz com que os dados "mesmo" pareçam reescritas. Classificando as teclas antes de dificultar transforma um diff de 300 linhas nas 2 linhas que realmente mudaram. Isso combina lindamente com o ferramenta diff de texto ao comparar cargas úteis de preparação versus produção - um truque que me salvou pessoalmente durante pelo menos dois incidentes.
Mantenha matrizes curtas em linha. "colors": ["red", "green", "blue"] Em uma linha lê melhor do que cinco linhas de cerimônia. Bons formatadores fazem isso automaticamente para matrizes de primitivos; é a diferença entre JSON formatado, você pode roçar e formatar JSON que é tecnicamente bonito, mas com 4.000 linhas.
Formate o fragmento, não o arquivo. Para um documento de 15 MB quando você se preocupa apenas com um objeto: copie esse objeto aninhado, formate-o sozinho, pronto. Formatar todo o arquivo para que você possa ler 40 linhas dele é um esforço desperdiçado - embora se você precisar de tudo, uma ferramenta do lado do cliente o manipula sem uma barra de progresso de upload, porque lá e #39; não há upload.
e saber quando não Para formatar: JSON minificado em pacotes de produção e respostas de API devem permanecer minificadas. A formatação é para olhos, não para fios. Se você precisar da direção oposta, o mesmo ferramenta Minifica com um clique.
Perguntas frequentes
Como faço para formatar o JSON online gratuitamente?
Cole seu JSON no Formatador Toolz.dev JSON- formata instantaneamente com realce de sintaxe e verificação de erros, grátis, sem inscrição O processamento acontece no seu navegador, por isso nada do que você colar é carregado em qualquer lado Essa última parte importa mais do que o & quot; free" part se a carga útil contiver tokens ou dados do utilizador.
Por que meu JSON não está formatando corretamente?
O documento tem um erro de sintaxe, e os principais suspeitos são vírgulas à direita, aspas simples, chaves não citadas, barras invertidas não escapadas e colchetes incompatíveis Um formatador que valida apontará para a linha exata Se o erro não faz sentido, verifique se você realmente tem JSON em tudo - APIs adoram retornar páginas de erro HTML com um tipo de conteúdo JSON.
Qual é a diferença entre formatar e validar JSON?
Formatar reescreve espaços em branco para legibilidade; validar verifica o documento em relação à gramática RFC 8259. Na prática, eles e #39; são a mesma operação - um formatador deve analisar (validar) antes de poder reformatar. Isso e #39; por que " ganhou e #39; formato e cotação; e " it' s inválido" são o mesmo diagnóstico.
Devo usar 2 ou 4 espaços para recuo JSON?
Use 2 espaços, a menos que seu projeto já seja padronizado em 4. JSON se aninha mais do que a maioria dos códigos-fonte e o recuo em 2 espaços mantém as respostas da API do mundo real legíveis sem rolagem horizontal. Em seguida, bloqueie a escolha em .editorconfig Portanto, nunca mais aparece na revisão de código.
Posso formatar JSON no código VS sem uma extensão?
Sim - Shift+Alt+F (ou Shift+Option+F no Mac) forma qualquer arquivo JSON com o formatador integrado e "format em Save" o torna automático. Observe que o próprio VS Code settings.json é JSONC, que permite comentários - don' deixe que isso o convença de que o JSON normal faz.
É seguro colar as respostas da API em formatadores JSON online?
Somente nos do lado do cliente. Muitos sites formatadores POST sua entrada em um servidor, o que significa que sua resposta de API - tokens, e-mails, tudo isso - agora existe em registros de outra pessoa e #39; s. O Formatador Toolz.dev Executa inteiramente no seu navegador; verifique-o você mesmo, observando a guia da rede enquanto você cola.
Como faço para formatar um arquivo JSON enorme (10 MB+)?
As ferramentas do navegador do lado do cliente lidam com arquivos nesta faixa bem, já que não há etapa de upload - a pasta é a parte lenta. Passados 50 MB ou mais, mude para ferramentas de streaming: jq na linha de comando ou extraia apenas a seção que você precisa e formate isso. Nunca cole arquivos enormes em ferramentas baseadas em servidor; você está esperando um upload sem nenhum benefício.
Como faço para minimizar o JSON em vez de formatá-lo?
Mesma ferramenta, botão oposto - o formatador json Possui um modo de Minify de um clique que retira todos os espaços em branco. Minify for Production Payloads, LocalStorage e Log Pipelines; Formato para humanos. Os dados são idênticos de qualquer maneira.
A formatação do JSON altera os dados?
Não - a formatação apenas reescreve os espaços em branco, de modo que as chaves, os valores e a estrutura permanecem idênticos em significado Um documento formatado e sua versão minificada analisam exatamente o mesmo objeto Se seus dados realmente mudarem, você editou algo manualmente, em vez de apenas formatar.
O que é um embelezador JSON?
It' s outro nome para um formatador JSON - uma ferramenta que leva JSON minificado ou bagunçado e adiciona indentação e quebras de linha para que um ser humano possa lê-lo. " Beautify, " " pretty-print, & quot; e & quot; format" todos descrevem a mesma operação O formatador json Faz isso em uma pasta.
O hábito de quinze segundos
Formatar o JSON é uma pequena habilidade com retornos descomunais - a maioria dos & quot; a API está quebrada" os momentos são realmente & quot; a carga útil é ilegível" momentos, e aqueles dissolvem o segundo em que a estrutura se torna visível Obtenha o loop de leitura em formato de pasta até quinze segundos e toda uma categoria de atrito de depuração desaparece.
o JSON Formatador em Toolz.dev É a versão desta ferramenta que eu queria durante aquele ticket de suporte: instantâneo, preciso sobre erros e incapaz de vazar seus dados porque eles nunca os recebem.
Depois que seu JSON estiver limpo, a próxima etapa geralmente é movê-lo para algum lugar - para uma planilha com o Conversor JSON para CSV, de volta de um com o Conversor CSV para JSON, ou em um pipeline de configuração por meio do Validador YAML. Comece com o Guia JSON para CSV ou volte para o Guia completo de ferramentas JSON Para o mapa completo.
Artigos relacionados:



