Formatar e indentar JSON
- Painel
- Documentação
- API
Porquê a formatação JSON?
A formatação JSON permite tornar os dados JSON mais legíveis e compreensíveis para os programadores e utilizadores. Facilita o debug, a revisão de código e a análise dos dados, em particular quando se trata de ficheiros JSON complexos e volumosos. Um JSON bem formatado também pode ser integrado mais facilmente em documentos e relatórios.
Como formatar JSON
Na página de formatação, pode formatar o seu JSON colando-o na área de texto prevista para esse efeito ou carregando um ficheiro que contenha JSON.
Assim que o JSON é submetido, é formatado e apresentado numa área de resultado. Se o JSON for inválido, é apresentado um erro com uma indicação da natureza do problema.
Utilizar o JSON formatado
Pode copiar o JSON formatado utilizando o botão de cópia previsto para o efeito. Isto facilita a integração do JSON nos seus projetos ou relatórios.
O seu código JSON deverá ter este aspeto:
{
"id": 12345,
"name": "John Doe",
"email": "johndoe@example.com",
"address": {
"street": "123 Main St",
"city": "Springfield",
"state": "IL",
"postalCode": "62704",
"country": "USA"
},
"phoneNumbers": [
{
"type": "home",
"number": "555-1234"
},
{
"type": "work",
"number": "555-5678"
}
],
"orders": [
{
"orderId": 1001,
"orderDate": "2023-06-01T14:30:00Z",
"items": [
{
"productId": 2001,
"productName": "Laptop",
"quantity": 1,
"price": 999.99,
"details": {
"manufacturer": "TechCorp",
"warranty": "2 years"
}
},
{
"productId": 2002,
"productName": "Mouse",
"quantity": 2,
"price": 25.50,
"details": {
"manufacturer": "GadgetCo",
"warranty": "1 year"
}
}
],
"totalAmount": 1051.49
},
{
"orderId": 1002,
"orderDate": "2023-06-10T10:15:00Z",
"items": [
{
"productId": 2003,
"productName": "Keyboard",
"quantity": 1,
"price": 45.99,
"details": {
"manufacturer": "KeyMasters",
"warranty": "3 years"
}
}
],
"totalAmount": 45.99
}
],
"preferences": {
"newsletter": true,
"notifications": {
"email": true,
"sms": false
},
"theme": "dark"
},
"lastLogin": "2024-06-14T09:30:00Z"
}
Perguntas frequentes
Qual a diferença entre um formatador, um validador e um minificador JSON?
Um formatador (beautifier) reescreve um JSON compacto em versão indentada e legível. Um validador verifica apenas que a sintaxe está conforme à especificação (RFC 8259) e sinaliza os erros. Um minificador faz o inverso do formatador: remove todos os espaços para reduzir o tamanho do ficheiro. A nossa ferramenta combina formatação e validação: se o JSON for inválido, uma mensagem de erro indica a posição do problema.
O JSON padrão aceita comentários e vírgulas finais?
Não. A especificação JSON (RFC 8259) proíbe estritamente os comentários (// ou /* */) e as vírgulas finais após o último elemento de um array ou objeto. Se precisar delas, veja do lado do JSON5 ou do JSONC, duas extensões que aceitam comentários e vírgulas finais, utilizadas nomeadamente pelos ficheiros de configuração do VS Code e do TypeScript.
Porque é que as strings têm de usar aspas duplas?
A especificação JSON impõe as aspas duplas (") para todas as strings e todas as chaves de objeto. As aspas simples (') não são válidas, ainda que o JavaScript as aceite. Um erro frequente ao copiar de código JS é manter as aspas simples: o formatador sinaliza então um erro de parsing.
Como gerir números grandes ou números decimais muito precisos?
O JSON não distingue inteiros de números de vírgula flutuante: tudo é number. Os parsers JavaScript convertem automaticamente em Number, que perde precisão acima de 2^53 (inteiros) e tem uma precisão de vírgula flutuante limitada a 15 dígitos significativos. Para identificadores longos (Twitter IDs, snowflakes Discord) ou montantes financeiros, codifique-os como string ("123456789012345678") para preservar a precisão.
Que indentação escolher: 2 ou 4 espaços?
A indentação a 2 espaços é a convenção dominante (Prettier, ESLint por defeito, convenções npm), continua legível mesmo em documentos muito encadeados. A indentação a 4 espaços convém a documentos planos onde a verticalidade ajuda a leitura. O essencial é a coerência num mesmo projeto. A nossa ferramenta utiliza 4 espaços por defeito, em conformidade com o pretty print de json_encode(JSON_PRETTY_PRINT) em PHP.
Que fazer se o meu JSON contém caracteres Unicode ou emojis?
O JSON suporta nativamente o UTF-8. Os emojis, acentos, caracteres CJK e outros scripts não latinos são preservados tal como estão na saída formatada. Se o seu JSON utiliza o escape Unicode (é para é), continua válido mas o formatador não o reescreve em caractere nativo. Para normalizar, passe por um parser estrito como JSON.parse seguido de JSON.stringify.
Exemplo de pedido
curl -X POST https://cdrn.fr/api/v1/tools/json-formatter/execute \
-H "Content-Type: application/json" \
-d '{"input":"..."}'
Esquema de entrada
| Campo | Tipo | Obrigatório | Predefinição |
|---|---|---|---|
input |
text | ✓ | – |
Pontos de acesso
GET https://cdrn.fr/api/v1/tools- lista todas as ferramentas disponíveisGET https://cdrn.fr/api/v1/tools/json-formatter- obtém o esquema desta ferramentaPOST https://cdrn.fr/api/v1/tools/json-formatter/execute- executa esta ferramenta com um payload JSON