Formatar e validar JSON
Torne o JSON mais fácil de ler, verifique a sintaxe ou crie uma versão compacta. Este guia explica a indentação, a ordenação de chaves e como guardar o resultado.
Experimente o exemplo fornecido
Descarregue order-options.json, uma encomenda fictícia com dois artigos e nomes de campos em inglês. O objeto customer agrupa um nome e uma cidade; o array items contém CARD-02 seguido de BOX-01. O exemplo inclui texto entre aspas, quantidades e preços numéricos, o booleano true e null para uma nota de entrega vazia. Os campos estão propositadamente fora de ordem para mostrar o efeito da opção de ordenação.
Passo a passo
- Abra Formatador e validador JSON. Use Ficheiro para abrir o ficheiro order-options.json fornecido ou cole o seu conteúdo em Os seus valores.
- Defina Indentação como 2 para usar dois espaços por nível. Deixe Ordenar chaves dos objetos desmarcado na primeira execução.
- Selecione Processar entrada. A ferramenta verifica a sintaxe JSON antes de mostrar o resultado. Se indicar um erro, use a linha e a coluna para o localizar, corrija a entrada e tente novamente.
- Leia o resultado. O objeto customer e os dois artigos devem ser fáceis de acompanhar, com um campo ou elemento por linha. Os campos mantêm a ordem do exemplo enquanto a ordenação estiver desmarcada.
- Selecione Transferir resultado para guardar formatted.json. Também pode usar Copiar texto para colocar o resultado noutro editor.
- Abra o ficheiro descarregado num editor de texto e compare-o com o exemplo usando as verificações abaixo. Depois experimente as outras opções de indentação e ordenação, selecionando Processar entrada após cada alteração.
Exemplos antes e depois
Estes exemplos curtos usam o objeto customer de order-options.json como um pequeno documento JSON. Compare o mesmo nome e cidade antes e depois de cada opção. A secção opcional de referência no final mostra a encomenda completa.
Tornar o JSON compacto mais fácil de ler
Defina Indentação como 2, deixe Ordenar chaves dos objetos desmarcado e selecione Processar entrada. O resultado acrescenta quebras de linha e dois espaços por nível, mantendo a ordem original dos campos.
Antes: entrada compacta
{"customer":{"name":"Zoë","city":"Bergen"}}Depois: indentação de dois espaços
{
"customer": {
"name": "Zoë",
"city": "Bergen"
}
}Ordenar as chaves dentro de um objeto
Mantenha Indentação em 2, marque Ordenar chaves dos objetos e selecione Processar entrada. Dentro de customer, city passa a aparecer antes de name. Ambos os valores permanecem iguais.
Antes: ordem original das chaves
{
"customer": {
"name": "Zoë",
"city": "Bergen"
}
}Depois: chaves do objeto ordenadas
{
"customer": {
"city": "Bergen",
"name": "Zoë"
}
}Tornar o JSON compacto
Escolha Minificar em Indentação, deixe Ordenar chaves dos objetos desmarcado e selecione Processar entrada. Os espaços de formatação e as quebras de linha desaparecem; o texto e a ordem dos campos permanecem iguais.
Antes: indentação de dois espaços
{
"customer": {
"name": "Zoë",
"city": "Bergen"
}
}Depois: Minificar
{"customer":{"name":"Zoë","city":"Bergen"}}Escolher a indentação
| Opção | O que faz |
|---|---|
| 2 | Usa dois espaços por nível de aninhamento. É a opção usada nas instruções principais. |
| 4 | Usa quatro espaços por nível de aninhamento, destacando mais os objetos e arrays aninhados. |
| ↹ | Usa uma tabulação por nível de aninhamento. A largura visual depende do editor de texto. |
| Minificar | Remove os espaços de formatação e as quebras de linha. Os espaços dentro de texto entre aspas continuam a fazer parte desse texto. Escolha esta opção para um resultado compacto e selecione Processar entrada. |
Alterar a entrada ou uma opção apaga o resultado anterior. Selecione Processar entrada novamente para criar um resultado com as novas definições. A ferramenta lê sempre a área de entrada; não volta a introduzir automaticamente o resultado anterior nessa área.
Ordenar as chaves dos objetos
Deixe Ordenar chaves dos objetos desmarcado para manter a ordem original dos campos de cada objeto. Quando marcado, ordena as chaves pela ordem textual, distinguindo maiúsculas de minúsculas, em todo o documento, incluindo objetos dentro de arrays. Os elementos dos arrays mantêm a sequência original.
- Mantenha Indentação em 2, marque Ordenar chaves dos objetos e selecione Processar entrada.
- As chaves de nível superior ficam na ordem customer, deliveryNote, items, order e paid. Dentro de customer, city aparece antes de name. Em cada artigo, price aparece antes de quantity e sku.
- O array items continua a conter CARD-02 seguido de BOX-01. Ordenar as chaves não ordena os artigos por sku nem por preço.
Copiar, descarregar e recomeçar
| Opção | O que faz |
|---|---|
| Copiar texto | Copia o resultado atual como texto. Se a cópia não estiver disponível, a ferramenta seleciona o resultado para que o possa copiar manualmente. |
| Transferir resultado | Guarda o resultado atual como formatted.json. Este nome é usado para resultados formatados, compactados e ordenados; mude os nomes dos ficheiros se quiser guardar várias versões. |
| Imprimir resultados | Abre a janela de impressão do navegador para o texto do resultado. |
| Carregar exemplo | Substitui a entrada pelo exemplo incluído na ferramenta e processa-o com as definições atuais. Esse exemplo é diferente do order-options.json deste guia. |
| Remover tudo | Apaga a entrada, o ficheiro selecionado e o resultado. As opções de indentação e ordenação mantêm-se selecionadas. |
Verificar o JSON descarregado
- Abra formatted.json num editor de texto. Confirme que a encomenda é ORD-1042, que o cliente é Zoë em Bergen e que existem dois artigos.
- Verifique os valores e os seus tipos: quantity contém os números 2 e depois 1, os preços mantêm 19.50 e 5.00, paid é o booleano true sem aspas e deliveryNote é o valor null sem aspas. Os nomes e códigos entre aspas continuam a ser strings.
- Depois de experimentar Ordenar chaves dos objetos, confirme a ordem dos campos indicada acima e que CARD-02 continua antes de BOX-01 no array items.
- Experimente Minificar e Processar entrada. Cole o resultado em Os seus valores, defina Indentação como 2 e selecione Processar entrada novamente. Compare os valores e a ordem dos artigos com o exemplo original; as opções de formatação devem preservá-los.
Perguntas e resolução de problemas
Porque indica JSON inválido?
Verifique a linha e a coluna indicadas, bem como o campo imediatamente anterior. As chaves e o texto precisam de aspas duplas; os campos precisam de vírgulas e dois-pontos; os parênteses retos e as chavetas têm de ser fechados. Corrija a entrada e selecione Processar entrada novamente. A validação verifica a sintaxe JSON, pelo que um resultado válido pode ainda não conter os campos exigidos pela sua aplicação.
Posso usar comentários ou uma vírgula final?
Remova os comentários e qualquer vírgula imediatamente antes de fechar um parêntese reto ou uma chaveta. Não são válidos em JSON. A ferramenta exige uma entrada válida e não a corrige automaticamente.
O que significa o aviso de chave repetida?
A mensagem «As chaves repetidas foram preservadas. Alguns leitores descartam chaves repetidas.» significa que uma chave aparece mais de uma vez no mesmo objeto. A ferramenta mantém essas entradas e mostra um aviso. Reveja a origem, escolha o valor pretendido e remova a entrada adicional; outra aplicação poderá guardar apenas uma delas.
Porque não consigo abrir ou processar o ficheiro?
O limite de entrada é 2 MiB, ou 2 097 152 bytes. Os ficheiros de texto locais devem estar em UTF-8. Se a ferramenta indicar que os dados são demasiado complexos, reduza o aninhamento ou o número de entradas. Divida entradas grandes em documentos JSON completos mais pequenos, sem cortar a meio de um objeto ou array.
Porque mudam os números longos noutra aplicação?
O exemplo separado de precisão abaixo contém 9007199254740993 e 0.10000000000000001. Esta ferramenta preserva exatamente o texto desses números em todas as opções de indentação e ordenação. Formate exact-numbers.json e compare o resultado com exact-numbers-formatted.json num editor de texto. Uma aplicação que importe o resultado pode ainda arredondar os números; confirme que suporta a precisão necessária. Um código com zeros iniciais, como 00123, tem de ser uma string entre aspas em JSON.
A formatação pode recuperar dígitos já arredondados?
A formatação não consegue recuperar dígitos arredondados ou removidos antes de o texto chegar à ferramenta. Volte à origem e exporte novamente o valor completo. Quando o valor é um identificador e não uma quantidade, usar uma string pode ajudar as aplicações que o recebem a conservar os dígitos.
Opcional: comparar o exemplo e os resultados de referência
Estes exemplos de código e ficheiros foram produzidos a partir de order-options.json pela mesma ferramenta disponível na página. As referências formatada e compactada mantêm a ordenação de chaves desativada; a referência ordenada usa dois espaços de indentação e a ordenação ativada.
Exemplo original
{"order":"ORD-1042", "customer": {"name":"Zoë","city":"Bergen"}, "items":[{"sku":"CARD-02", "quantity":2,"price":19.50},{"sku":"BOX-01","quantity":1, "price":5.00}], "paid":true, "deliveryNote":null}
Dois espaços; ordem original das chaves
{
"order": "ORD-1042",
"customer": {
"name": "Zoë",
"city": "Bergen"
},
"items": [
{
"sku": "CARD-02",
"quantity": 2,
"price": 19.50
},
{
"sku": "BOX-01",
"quantity": 1,
"price": 5.00
}
],
"paid": true,
"deliveryNote": null
}Minificar; ordem original das chaves
{"order":"ORD-1042","customer":{"name":"Zoë","city":"Bergen"},"items":[{"sku":"CARD-02","quantity":2,"price":19.50},{"sku":"BOX-01","quantity":1,"price":5.00}],"paid":true,"deliveryNote":null}Dois espaços; chaves dos objetos ordenadas
{
"customer": {
"city": "Bergen",
"name": "Zoë"
},
"deliveryNote": null,
"items": [
{
"price": 19.50,
"quantity": 2,
"sku": "CARD-02"
},
{
"price": 5.00,
"quantity": 1,
"sku": "BOX-01"
}
],
"order": "ORD-1042",
"paid": true
}| Ficheiro de referência | Definições | Bytes |
|---|---|---|
| order-formatted.json | Dois espaços; ordem original das chaves | 300 |
| order-minified.json | Minificar; ordem original das chaves | 193 |
| order-sorted.json | Dois espaços; chaves dos objetos ordenadas | 300 |
Estes são resultados de texto reais, não capturas da interface. O código pode ajustar-se à largura do ecrã. Os nomes dos ficheiros de referência distinguem os exemplos; a ferramenta descarrega todas as versões como formatted.json.