JSON aninhado, formatado e minificado
Um objeto aninhado compacto cresce quando formatado com dois espaços e volta ao mesmo texto compacto quando minificado.
Entrada, 111 B
{"kit":"sample","ready":true,"count":2,"note":null,"tags":["pdf","json"],"nested":{"locale":"en","weight":1.5}}
Configurações | Formatar | JSON.stringify com 2 espaços |
| Minificar | JSON.stringify sem espaço extra |
Resultados observados
Formatar, 164 B
{
"kit": "sample",
"ready": true,
"count": 2,
"note": null,
"tags": [
"pdf",
"json"
],
"nested": {
"locale": "en",
"weight": 1.5
}
}
Minificar, 111 B
{"kit":"sample","ready":true,"count":2,"note":null,"tags":["pdf","json"],"nested":{"locale":"en","weight":1.5}}
O que conferir
Formatar mudou 111 B para 164 B. Minificar esse texto formatado devolveu 111 B, idêntico à entrada. Chaves, true, null e 1.5 permaneceram iguais. O status “JSON válido” aqui significa que o texto foi analisado. Não significa que um schema foi conferido.
Ressalvas
- Minificar coincidiu com a entrada porque ela já estava compacta. Nem todo documento diminui.
- Os arquivos formatado e minificado são as strings exatas, sem quebra extra no final.
Inteiros fora do intervalo seguro são recusados
Um inteiro sem aspas acima de 9007199254740991 é recusado para o formatador não gravar outro número.
Entrada recusada, 47 B
{"reference":9007199254740993,"label":"unsafe"}
Configurações | Limite seguro, inclusive | ±9007199254740991 |
| Token recusado | 9007199254740993 |
Resultado da ferramenta
Este JSON contém um número inteiro fora do intervalo seguro do JavaScript. Para evitar a alteração dos dígitos, armazene esse valor como texto entre aspas antes de formatar.
O que conferir
A saída formatada ficou vazia. O JSON.parse sozinho transformou 9007199254740993 em 9007199254740992. Em seguida, o formatador encontra esse token original e não grava o número alterado. A mesma recusa ocorreu com 9007199254740992 e com -9007199254740993. O inteiro 9007199254740991 foi formatado sem mudança, num documento de 35 B.
Ressalvas
- Colocar os dígitos entre aspas funciona. quoted-large-integer.json formata um documento de 58 B e mantém 9007199254740993 como string.
- Um token decimal pula a verificação de inteiros. decimal-large-number.json usa 9007199254740993.0 e o formatador grava 9007199254740992. Coloque o valor entre aspas, ou mantenha um inteiro dentro do limite seguro, quando cada dígito importa.
Arquivos do exemplo
- Baixar unsafe-integer.json Entrada. 9007199254740993 sem aspas, 47 B. O formatador recusa.
- Baixar unsafe-power-of-two.json Entrada. 9007199254740992 sem aspas, 30 B. Também recusado.
- Baixar unsafe-negative-integer.json Entrada. -9007199254740993 sem aspas, 31 B. Também recusado.
- Baixar safe-integer-boundary.json Entrada. 9007199254740991, 30 B. Este inteiro é aceito.
- Baixar safe-integer-boundary-formatted.json Saída. Inteiro seguro formatado, 35 B, dígitos inalterados.
- Baixar quoted-large-integer.json Entrada. Os mesmos dígitos guardados como string, 49 B.
- Baixar quoted-large-integer-formatted.json Saída. Inteiro entre aspas formatado, 58 B, dígitos inalterados.
- Baixar decimal-large-number.json Entrada. Token decimal 9007199254740993.0, 32 B.
- Baixar decimal-large-number-formatted.json Saída. Resultado do formatador, 35 B, com o número alterado para 9007199254740992.
Uma vírgula sobrando é JSON inválido
O formatador mostra o detalhe do analisador e não inventa uma correção.
Entrada, 24 B
{
"label": "sample",
}
Resultado da ferramenta
Este JSON não é válido. Expected double-quoted property name in JSON at position 23 (line 3 column 1)
O que conferir
A saída ficou vazia. A frase depois do ponto é o detalhe do analisador V8 observado no Node.js 22.19.0. Outro mecanismo de navegador pode redigir esse detalhe de outro modo. A posição 23 é a chave de fechamento na linha 3, depois da vírgula sobrando.
Ressalvas
- A ferramenta não remove a vírgula por você. Uma correção silenciosa poderia alterar outro documento.
Sintaxe válida ainda pode ter o formato errado
Um objeto cujo valor de pages é a string “two” formata com sucesso.
Entrada, 29 B
{"status":"ok","pages":"two"}
JSON formatado, 38 B
{
"status": "ok",
"pages": "two"
}
O que conferir
O formatador aceitou este texto. Um schema que exigisse pages como número rejeitaria a string “two”. Esta página confere só a sintaxe JSON. Nomes de campos, tipos e contratos de API precisam de uma verificação de schema separada.
Ressalvas
- O status “JSON válido” descreve a análise. Não é aprovação do formato dos dados.