FAQ do Formatador e validador JSON
Q: O que é um formatador de JSON?
A: O que é um formatador de JSON?
Um formatador de JSON é uma ferramenta que recebe dados JSON brutos, minificados ou mal formatados e os reformata com indentação, quebras de linha e espaçamento adequados para torná-los legíveis por humanos. A maioria dos formatadores de JSON também inclui validação, realce de sintaxe, detecção de erros e, às vezes, recursos adicionais como ordenação de chaves, minificação e navegação em árvore. Nosso formatador de JSON online gratuito combina formatação e validação em uma única ferramenta, oferecendo saída limpa e instantânea com relatórios de erro detalhados.
Q: Por que meu JSON é inválido?
A: Por que meu JSON é inválido?
O JSON é inválido quando viola as regras estritas da especificação JSON. As causas mais comuns incluem:
- Vírgulas finais após o último item de um objeto ou array
- Aspas duplas ausentes em chaves de objetos ou valores de string
- Aspas simples usadas em vez de aspas duplas (aspas simples não são válidas em JSON)
- Caracteres especiais não escapados, como barras invertidas ou aspas não escapadas dentro de strings
- Valores inválidos como
undefined,NaNouInfinity(que não possuem equivalente em JSON) - Chaves ou colchetes desbalanceados, onde
{/}ou[/]não estão devidamente pareados
Use um validador de JSON para identificar a localização exata e a natureza dos erros de sintaxe. A maioria dos validadores informa a linha, a coluna e uma mensagem de erro descritiva para o primeiro problema encontrado.
Q: Qual é a diferença entre JSON e objetos JavaScript?
A: Qual é a diferença entre JSON e objetos JavaScript?
Embora a sintaxe do JSON seja derivada da sintaxe de literais de objetos JavaScript, eles não são a mesma coisa. As principais diferenças incluem:
- As chaves devem estar entre aspas duplas -- o JSON exige
{"key": "value"}, enquanto o JavaScript permite{key: "value"}(sem aspas) e{'key': 'value'}(com aspas simples). - Valores de string devem usar aspas duplas -- o JSON só permite aspas duplas para strings. O JavaScript aceita tanto aspas simples quanto duplas.
- Sem vírgulas finais -- o JSON proíbe vírgulas finais após o último item. O JavaScript as permite.
- Tipos de dados limitados -- o JSON suporta apenas string, número, booleano, null, objeto e array. Objetos JavaScript podem conter funções,
undefined,Date,Map,Sete outros tipos especiais. - Sem comentários -- o JSON não suporta comentários. Objetos JavaScript em código-fonte podem ter comentários.
Isso significa que você não pode simplesmente escrever um objeto JavaScript e chamá-lo de JSON -- ele deve ser serializado com JSON.stringify() ou escrito de acordo com as regras estritas do JSON.
Q: O JSON pode ter comentários?
A: O JSON pode ter comentários?
Não, a especificação oficial do JSON (RFC 8259) não suporta comentários. O JSON foi projetado como um formato mínimo de intercâmbio de dados, independente de linguagem, e os comentários foram intencionalmente excluídos para manter os analisadores simples e consistentes entre as linguagens.
Se você precisar de comentários, tem algumas opções:
- JSONC (JSON com Comentários) -- Usado pelo VS Code e outras ferramentas para arquivos de configuração. O JSONC permite comentários de linha com
//e comentários de bloco com/* */. - YAML ou TOML -- Formatos alternativos de configuração que suportam comentários nativamente.
- Metadados baseados em convenção -- Use uma chave como
"_comment"ou"//"em seus objetos JSON para armazenar notas legíveis por humanos. Observe que isso adiciona dados ao seu payload. - Remova os comentários antes do parsing -- Use uma etapa de pré-processamento para remover os comentários antes de passar o JSON para um analisador estrito.
Q: Como valido JSON online?
Q: Como valido JSON online?
A: Como valido JSON online?
Validar JSON online é simples:
- Copie seus dados JSON
- Cole-os em uma ferramenta de validação de JSON
- Clique no botão de validar ou formatar
- A ferramenta informará se o JSON é válido ou exibirá um erro com a localização exata e a descrição do problema
Um bom validador de JSON deve:
- Validar a sintaxe de acordo com a especificação oficial do JSON (RFC 8259)
- Mostrar o número da linha e da coluna dos erros
- Fornecer uma mensagem de erro descritiva explicando o que deu errado
- Opcionalmente, formatar e embelezar o JSON ao mesmo tempo
- Realçar a sintaxe com código de cores para diferentes tipos de dados
Para dados grandes ou sensíveis, muitos validadores online processam tudo no lado do cliente, no seu navegador, o que significa que seus dados nunca saem da sua máquina.
Q: O que significa JSON minificado?
A: O que significa JSON minificado?
JSON minificado é o JSON com todo o espaço em branco desnecessário removido -- espaços, tabulações, quebras de linha e indentação são eliminados. O resultado é um texto compacto em uma única linha (ou pouquíssimas linhas):
{"users":[{"id":1,"name":"Alice","roles":["admin"]}],"total":1}
O JSON minificado é usado em produção por vários motivos:
- Tamanho de arquivo menor -- pode reduzir o tamanho do payload em 30-50% ou mais
- Transferência de rede mais rápida -- menos dados para transmitir significa menor latência
- Custos de largura de banda reduzidos -- especialmente importante para APIs de alto tráfego e aplicativos móveis
A desvantagem é que o JSON minificado é essencialmente ilegível para humanos. Use uma ferramenta de impressão bonita de JSON para reformatar o JSON minificado em uma estrutura legível para depuração ou inspeção.
Q: Como faço para imprimir JSON de forma bonita na linha de comando?
A: Como faço para imprimir JSON de forma bonita na linha de comando?
Várias ferramentas de linha de comando podem imprimir JSON de forma bonita:
Com jq (o mais popular, instale separadamente):
cat file.json | jq .
Com Python (integrado na maioria dos sistemas):
python -m json.tool file.json
Com Node.js:
node -e "const d = require('./data.json'); console.log(JSON.stringify(d, null, 2));"
Com curl (imprimindo uma resposta de API de forma bonita):
curl https://api.example.com/data | jq .
A ferramenta jq é recomendada por sua saída colorida, capacidades de consulta e tratamento robusto de erros.
Q: O que é JSON Schema?
A: O que é JSON Schema?
JSON Schema é um vocabulário que permite anotar e validar documentos JSON. Ele define a estrutura, os tipos de dados e as restrições que um documento JSON deve satisfazer. Pense nele como um contrato ou especificação para seus dados JSON.
Principais capacidades do JSON Schema:
- Validação de tipo -- especifica se um valor deve ser string, número, booleano, array, objeto ou null
- Campos obrigatórios -- marca certas propriedades como obrigatórias
- Restrições de valor -- define valores mínimo/máximo, padrões de string (regex) e valores permitidos (enums)
- Validação de array -- controla o tamanho do array, os tipos de itens e a exclusividade
- Validação aninhada -- define esquemas para objetos e arrays aninhados
- Validação condicional -- aplica regras diferentes com base nos valores de outros campos
Exemplo de JSON Schema:
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"required": ["name", "email"],
"properties": {
"name": { "type": "string", "minLength": 1 },
"email": { "type": "string", "format": "email" },
"age": { "type": "integer", "minimum": 0, "maximum": 150 }
}
}
O JSON Schema é comumente usado para validar corpos de requisição de APIs, arquivos de configuração e contratos de intercâmbio de dados entre serviços.