Formatar e indentar JSON

torna o código JSON legível e estruturado, facilitando a leitura das trocas de dados entre servidores e aplicações

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.

Uui

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íveis
  • GET https://cdrn.fr/api/v1/tools/json-formatter - obtém o esquema desta ferramenta
  • POST https://cdrn.fr/api/v1/tools/json-formatter/execute - executa esta ferramenta com um payload JSON