{ } Formatador JSON
Embeleze e valide JSON com um clique. Formate, minifique e corrija erros. Grátis, sem cadastro.
Por que Formatar, Minificar e Validar nunca discordam sobre o que est quebrado
Um analisador, trs trabalhos. Formatar, Minificar e Validar enviam seu texto primeiro para o mesmo analisador JSON estrito embutido no seu navegador, ento qualquer coisa que falhe para um deles falhar para todos os trs. Eles s diferem no que acontece depois que a anlise bem-sucedida.
{"a":1,"b":[2,3]}{
"a": 1,
"b": [
2,
3
]
}| Boto | O que ele faz assim que seu texto analisado com sucesso |
|---|---|
| Formatar | Reescreve o valor analisado com um recuo de dois espaos e uma quebra de linha por elemento. O estilo fixo, no h opo para escolher uma largura diferente ou estilo de chaves. |
| Minificar | Reescreve o mesmo valor analisado sem nenhum espao em branco, colapsando tudo em uma nica linha. |
| Validar | Deixa o seu texto exatamente como digitado e relata sucesso, ou o erro exato do analisador, incluindo a posio do caractere onde a anlise foi interrompida. |
Todos os trs aplicam regras idnticas sem flexibilidade, porque todos se baseiam na mesma implementao estrita: nomes de propriedades e valores de strings precisam de aspas duplas, nunca aspas simples; uma vrgula final aps o ltimo item em um objeto ou array uma falha grave, no uma escolha de estilo; e no h suporte para comentrios de nenhuma forma. Essa a especificao JSON funcionando exatamente como projetado, e no esta ferramenta sendo estranhamente exigente.
A lacuna que confunde as pessoas a que existe entre JSON e um objeto literal JavaScript. Um cdigo como {name: 'Alice', tags: ['a', 'b'],} executado muito bem dentro de um script, pois o JavaScript permite chaves sem aspas, aspas simples e uma vrgula final. Nada disso JSON vlido. Cole-o aqui e Formatar, Minificar e Validar iro rejeit-lo da mesma maneira, porque a sintaxe JavaScript vlida e o JSON vlido so linguagens relacionadas, mas no idnticas.
O mesmo analisador do console do seu navegador. A mensagem de erro que Validar mostra a mensagem exata que uma chamada para JSON.parse() geraria no cdigo da sua prpria aplicao, no uma verso parafraseada. Se voc j depurou um erro de anlise no console do navegador, j sabe como interpretar os erros que essa ferramenta exibe.
Por que "JSON vlido" ainda pode ser o dado errado
Validar verifica a gramtica, no o significado. Ele confirma que seus colchetes, aspas e vrgulas esto todos nos lugares certos. Ele no tem ideia se falta um campo necessrio ou se um nmero chegou como string.
{"a": 1 "b": 2}Expected ',' or '}' after property value in JSON at position 8 (line 1 column 9)Essa mensagem aponta para o caractere exato em que o analisador desistiu: logo aps o 1, onde esperava uma vrgula ou uma chave de fechamento e encontrou o incio de outra propriedade em vez disso. Contar at essa posio em um editor de texto, ou usar o comando "ir para o caractere", geralmente mais rpido do que ler todo o arquivo de dados procurando uma vrgula ausente a olho nu.
O que Validar no pode dizer a voc se os dados esto corretos aps serem analisados. Uma resposta pode ser JSON sintaticamente perfeito e ainda estar sem um campo que o seu cdigo espera, manter um nmero como a string "42" em vez do nmero 42, ou armazenar a mesma data em trs formatos diferentes em trs registros distintos. Nada disso um problema de gramtica, ento nada disso produz um erro aqui.
| Validar captura | Validar no tem opinio sobre |
|---|---|
| Um colchete ou chave ausente ou incompatvel | Um campo necessrio que est simplesmente ausente |
| Uma vrgula faltando entre duas propriedades | Uma string no lugar em que se esperava um nmero |
| Uma chave sem aspas ou com aspas simples | O mesmo campo formatado de forma diferente nos registros |
| Uma vrgula final ou um comentrio de cdigo | Dados que so internamente inconsistentes, mas individualmente vlidos |
Sintaxe e significado so duas verificaes separadas. Esta ferramenta apenas realiza a primeira. Para a segunda, um validador de esquema ou a prpria verificao de tipo da sua aplicao a ferramenta certa, j que julgar o que um valor deve significar exige saber como seus dados especficos devem ser.
Por que o boto Corrigir quebra com apstrofos dentro de valores de string
Corrigir no consegue distinguir um apstrofo de uma aspa. Ele substitui todas as aspas simples do seu texto por aspas duplas, ento uma contrao como "it's" dentro de um valor de string tem seu apstrofo lido como aspas de fechamento, o que geralmente estraga o prprio JSON que tentava reparar.
{name: "Alice", active: true, nickname: undefined,}{
"name": "Alice",
"active": true,
"nickname": null
}Por trs desse resultado est uma sequncia fixa de quatro passos de localizar e substituir, executados nesta ordem toda vez, independentemente de o seu texto precisar realmente de cada um deles:
| Passo | O que ele reescreve |
|---|---|
| 1 | Todo ' se torna um ", em todo o texto. |
| 2 | Uma vrgula localizada logo antes de um } ou ] de fechamento excluda. |
| 3 | Uma palavra isolada seguida por dois pontos, como name:, envolvida em aspas duplas, mas apenas se comear com uma letra ou um sublinhado. |
| 4 | A palavra literal undefined se torna null. |
O primeiro passo uma substituio global cega, no um analisador que entende onde uma string comea e termina, e isso exatamente o que torna os apstrofos perigosos. Alimente-o com {'name': 'it's a test'} e o passo um transformar cada aspa simples em aspa dupla sem excees, produzindo {"name": "it"s a test"}. O apstrofo dentro de "it's" agora um caractere de aspas que fecha a string dois caracteres mais cedo, deixando um texto solto s a test" que no pertence mais a nada.
O reparo geralmente falha completamente em vez de corromper silenciosamente seus dados. Esse texto restante quase sempre quebra a anlise pela segunda vez, ento o Corrigir informa que no pde corrigir automaticamente esse JSON e deixa o contedo do seu editor intocado, em vez de retornar JSON com uma string silenciosamente mutilada. O custo real o seu tempo, no os seus dados: voc ainda precisa colocar aspas nesse valor mo, porque um passo de localizar e substituir cego no tem como distinguir um apstrofo de um delimitador.
A correo tambm de escopo restrito por design. Ele no pode inserir uma vrgula faltando entre duas propriedades, no pode remover um comentrio de cdigo, no pode converter um array fechado com o tipo errado de colchete, e no consegue notar ou resolver uma chave duplicada, pois nenhum desses problemas corresponde a nenhuma de suas quatro expresses regulares. Se a correo falhar, a posio de erro exata de Validar geralmente o caminho mais rpido para um reparo manual.
O Corrigir no faz nada no texto que j foi analisado com sucesso. Clique nele em um JSON que j vlido e ele mostrar uma mensagem informando isso, deixando seu texto exatamente como estava, incluindo a formatao. Clique em Formatar em vez disso se quiser alterar a formatao de um JSON vlido.
O que acontece quando seu JSON tem a mesma chave duas vezes
A ltima ocorrncia vence silenciosamente. A especificao JSON no probe uma chave repetida, e o analisador desta ferramenta a resolve mantendo apenas o valor da cpia que aparece por ltimo, sem erros e sem avisos.
{"name": "Alice", "name": "Bob"}{
"name": "Bob"
}Clique em Validar nessa entrada e ele relatar um JSON vlido, o que tecnicamente est correto: a especificao diz apenas que as implementaes "deveriam" tratar os nomes como nicos, deixando o comportamento real para quem faz a anlise. O analisador desta ferramenta, o mesmo integrado ao navegador, mantm o ltimo valor que encontra para uma chave repetida e descarta silenciosamente qualquer verso anterior. "Alice" some no momento em que a anlise concluda, sem nada na sada que mostre que ela esteve l.
Formatar e Minificar herdam o mesmo comportamento, j que ambos analisam seu texto antes de reescrev-lo. Execute qualquer um deles em um JSON com uma chave duplicada e a cpia extra j ter desaparecido quando voc ver o resultado. Isso fcil de perder quando a duplicao foi acidental, talvez um erro cometido ao mesclar dois trechos de JSON mo, por exemplo, em vez de algo que voc queria escrever.
A exibio em rvore a maneira mais rpida de encontrar um. Como uma chave duplicada colapsa em uma nica entrada antes de chegar rvore, uma chave que voc esperava ver renderizada duas vezes, mas que s v uma, um sinal sensato para voltar e verificar a sua origem em busca de uma repetio acidental.
Por que um nmero de ID longo muda depois que voc clica em Formatar
O JSON no tem limite de tamanho para inteiros, mas o tipo numrico do JavaScript tem. Nmeros maiores que 9.007.199.254.740.991 no podem ser armazenados com exatido, ento um ID longo arredondado silenciosamente para o valor mais prximo que se encaixa, sem nada para alert-lo sobre isso.
{"id": 900719925474099123}{
"id": 900719925474099100
}Cada nmero em um documento JSON analisado por esta ferramenta, ou por qualquer mecanismo JavaScript, armazenado como um valor de ponto flutuante de 64 bits. Esse formato s consegue representar exatamente cada inteiro at 9.007.199.254.740.991, um limite definido pela prpria linguagem. Informe um inteiro maior e ele arredondar para o valor mais prximo que o formato pode realmente reter. Acima, um ID de 18 dgitos terminando em ...099123 retorna terminando em ...099100. Tanto antes quanto depois, perfeitamente um JSON vlido segundo as regras da especificao; s os dgitos mudaram, silenciosamente.
Isso importa mais para os grandes identificadores inteiros que surgem constantemente em sistemas reais: IDs estilo snowflake do Discord e Twitter, algumas chaves primrias de bancos de dados, e certos valores financeiros ou de telemetria representados como grandes inteiros em vez de strings. Formatar, Minificar e Corrigir fazem um ciclo completo de anlise e reescrita dos seus dados, portanto, qualquer um dos trs pode silenciosamente corromper um ID dessa maneira, no s o Formatar.
Trate IDs maiores que 15 ou 16 dgitos como inseguros ao pass-los por esta ferramenta. Se o pacote de dados contm identificadores to longos, verifique os dgitos a olho nu antes e depois, ou melhor, trabalhe com uma biblioteca JSON construda para inteiros de preciso arbitrria, ou uma que leia esses campos especficos como strings. Um esquema que represente grandes IDs como strings entre aspas nunca alcana esse limite, visto que o limite de preciso se aplica unicamente ao tipo numrico.
Por que a formatao pode reordenar silenciosamente as chaves do seu objeto
Chaves que parecem nmeros saltam para a frente. Qualquer chave como "2" ou "10" movida para antes de todas as chaves de string normais e ordenada de modo ascendente por valor numrico, no importando onde voc a escreveu inicialmente.
{"b": 1, "10": 2, "a": 3, "2": 4}{
"2": 4,
"10": 2,
"b": 1,
"a": 3
}Olhe atentamente para o resultado: "2" e "10" movem-se l para a frente, antes de "b", embora "b" tenha sido escrito primeiro, e aterrissam em ordem numrica, 2 antes de 10, no na ordem em que surgiram no cdigo fonte. As chaves de string comuns "b" e "a" mantm sua ordem relativa original atrs daquelas com aparncia numrica.
Esse um comportamento padro definido na especificao da linguagem JavaScript para como as chaves de objeto so enumeradas, e no uma caracterstica exclusiva desta ferramenta. Qualquer chave que seja interpretada como um nmero inteiro no negativo, sem zeros esquerda, ponto decimal ou sinal, tratada como um ndice de array para finalidades de ordenao e organizada numericamente frente de todo o resto. fcil no perceber isso at que acontea com dados cujas estruturas voc no esperava que mudassem em nada.
Onde isso realmente traz consequncias: num JSON em que as chaves dos objetos acabam sendo cadeias numricas usadas como ndice, identificadores, uma estrutura semelhante a array representada como um objeto, ou linhas de planilha marcadas pelo nmero da linha. Se seus dados nunca usam chaves de aparncia numrica, a formatao jamais reordenar nada e a ordem em que voc inseriu ser totalmente preservada como escrita.
Por que voc nunca deve salvar JSON minificado no Git
Um arquivo minificado transforma qualquer mudana em um relatrio de mudana da linha inteira. Como o arquivo completo tecnicamente s tem uma linha, alterar apenas um valor em qualquer lugar dentro dele faz com que a ferramenta de diferenas informe que a linha inteira mudou, ocultando o que realmente se moveu.
{"id":42,"active":true,"tag":"draft"}{
"id": 42,
"active": true,
"tag": "draft"
}JSON minificado existe para mquinas. Excluir todo espao e quebra de linha corta bytes genunos de uma carga til enviada de forma contnua pela rede, o que pesa em uma resposta de API pblica fornecida milhes de vezes, mas quase no faz diferena para um arquivo de configurao que ser lido uma vez ao iniciar. O JSON elegantemente impresso serve para as pessoas: manter uma propriedade por linha, dotada de recuo equilibrado, o que torna de verdade grandes registros de configurao ou dados da API em coisas legveis.
Pode ser fcil subestimar os preos de fazer isso de cabea para baixo na hora do controle de verses. Armazene a variante minificada daquele pacote dentro do Git e mude apenas "tag": "draft" para "tag": "final", e um revisor topar com toda a fileira sendo declarada como renovada, pois a estrutura completa possui s uma linha. Eles estaro impossibilitados de decifrar no mesmo momento se uma poro individual sofreu transformao ou se a armao inteira se refez inteiramente. Guarde a variante formatada em vez disso e a mesmssima edio gerar um informe exibindo a alterao de uma linha nica revelando perfeitamente o campo "tag".
A funo da mudana de lugares exibida sobre os ttulos outrora intensifica o caso. Duas ferramentas que imprimam dados semelhantes com modos ligeiramente distintos, ou um item que agrupe identidades feitas de letras imitando nmeros, entregam comparaes assustadoras ainda quando a lgica do sistema permanea absolutamente imutvel.
Guarde o texto original na sua forma ampliada e produza o minificado no fim. Alterar na raa o JSON minificado e apostar na verificao visual confrontar a prpria formatao passo a passo. Mantena os originais claros submetidos sob controle de verses e esculpa a reproduo menor s na fase de gerao da soluo.
Como encontrar uma propriedade errada em uma resposta profundamente aninhada
A exibio em rvore converte o JSON aninhado em um formato contedo recolhvel. Cada agrupamento ou listagem podem ocultar-se sem depender do demais e carrega a marca de quantos contedos hospeda, entregando-lhe o poder de apagar do visor o que domina perfeitamente enquanto afunila os olhos onde realmente importam os estudos de caso.
O formato em formato de rvore examina o JSON sob normas restritas, da mesma forma que o sistema de validao, exigindo assim que todos os caracteres formem sintaxes ntegras a fim de sequer arrancar do bero. Aperte o mecanismo tendo injetado JSON acidentado e receber perfeitamente o aviso idntico do validador, rechaando a ideia de uma rvore partida, criada atravs de fragmentos decifrados.
| Epcie do valor | Como repousa nos esquemas |
|---|---|
| Cadeia de texto | Mostrado a verde, entre aspas, sinalizado como string |
| Nmero | Mostrado a azul, despido de aspas, sinalizado como number |
| Booleano | Mostrado a mbar, sinalizado como boolean |
| Nulo | Mostrado a cor cinza em cursivo, sinalizado como null |
Braos e ramificaes originadas por conjuntos dotam as etiquetas próprias rejeitando batismos de tipo: propriedades sinalizam as proles mantidas na prpria estrutura, agrupamentos relatam quantos nmeros escondem, sendo ambos valores somados dinamicamente medida das escavaes de planos interiores. Aps anexar {"user":{"id":1,"tags":["a","b"]}} entrega uma base central regendo um ttulo solitrio que ao abrir brotam mltiplos campos em formato de pares de contedos, dentre os quais resplandece mais mltiplos filhos reunidos por lista. Ocultar tais ramais separadamente cessa a aflitiva maratona que seria examinar extensas pilhas visuais at descobrir a vrgula fora do edifcio real.
Conflitos ou choques entre nmeros e palavras acendem como lanternas visualizando rvores, quando ficavam submersos na enxurrada normal. O engano simples num cdigo gravado com marcas delimitadoras enquanto ansiavam algo puro e absoluto, bem assim um erro apontando vazio na espcie literal do texto, acabam ocultos dentro da estrutura corrida, s que transparecem de imediato no horizonte ao assumirem o espectro de pintura nica num bosque recm distendido.
Seis formas como pessoas exploram realmente essa ferramenta
Inspeccionar ligaes API partidas que a traduo do computador recusou em absoluto
Despeje o corpo volumoso da transmisso e accione Validar primordialmente. O marco milimtrico na letra e linha ressoando do aviso habitual desvia a procura s cegas e ataca certeiro atitudes fora de esquadria: vrgulas renegadas, aspas excludas ou esquecimentos gerais, desonerando os msculos pticos num mar de escritas ilegveis.
Esfoliar uma expresso vinda do cenrio nativo no cdigo em JavaScript
Elementos extirpados do ambiente de criao muitas vezes esgrimem letras cercadas individualmente e repudiam demarcar o invlucro roda dos ttulos: prticas soberanas onde rege o JS mas estritamente inaceitveis pela burocracia reinante de JSON. A reestruturao apaga tais marcas nocivas na hora sob as facetas claras. Excute o Validar posteriomente por via das dvidas selando dest'arte a converso imaculada recusando aceitar teorias da crena popular.
Murchar o corpanzil do arquivo estritamente regulador em marcha da implementao
Arquivos tecidos na memria orgnica respiram perfeitamente na viso desafogada gerada pelo sistema clssico de formatao. No percurso migratrio ao grande palco esse fardo precisa do desengorduramento profundo forjado pela compresso mecnica. Albergue na retaguarda do laboratrio a essncia original formatada encomendando reprodues sintticas esturricadas antes de ir aos focos e lmpadas do estdio pblico em vez de remendar e rasurar um texto sufocado toda a vez.
Rastreio minucioso da encomenda encoberta antes de lavrar os pergaminhos cartorrios do gnero de parmetros
Precedendo erguer os tradutores do reino, empurre fragmentos e mostrurios at maquinaria das ramificaes a pretexto de reconhecer com os prprios olhos o esqueleto: separar quem s lista contedos brutos e aqueles dotados de nomenclaturas prprias aladas em epxi, resgatando na rasteira espaos vacantes nulos de natureza. Traos anormais e forasteiros flutuam acima da mar nas excurses ampliadas a um nvel jamais sonhado sob a torrente empacotada de letras mrbidas num tnel nico e sufocante.
Legitimar no santurio de alteraes espelhos visuais descontrados no o ensurdecimento dum estrondo inoperante em rudo unificado
Perpetue o p de mrmore que so os blocos de teste ou estatuetas reguladoras preservados e distanciados invs do empedernido monolito do arquivo minificado instantes rpidos antes da travessia aos cdigos sagrados de partilha corporativa. Listas de ttulos arejados de cima para baixo promovem o dedo directo no olho do furaco provando ao vivo a mudana; em contraste absoluto um feixe esmagado mancha as pginas relatoriais com vermelho vivo mal mexem num pargrafo singular.
Guarida de ttulos astronmicos em srie refutando esmagamentos matemticos fantasmas
Sendo a encomenda um barco ancorando contedos sob chancelas tipo 'Floco-de-neve' (Snowflake) e nmeros puros encarnando ttulos realeza nos reinos de bases-de-dados, no promova viagens a estes blocos por meios correcionais nem os esmague nulos de inspecio sem confirmar cada unidade grfica nas pegadas destas faanhas. Tomando as cordas que rejam o sistema no plano estrutural o abrigo destes colossos nmeros sobre vestimentas de chanes com aspas desviam do limite fatal posto que a divisa algarbica de 2^53 impe ditames opressivos exclusivamente perante domnios da famlia numrica JSON de puro osso.
Perguntas Frequentes
Ferramentas Relacionadas
🔒 100% Privado e Seguro
Todo o processamento de JSON ocorre localmente no seu navegador - seus dados nunca são enviados. Seguro para chaves de API, configurações e dados sensíveis.