Todos os guias

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

  1. 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.
  2. Defina Indentação como 2 para usar dois espaços por nível. Deixe Ordenar chaves dos objetos desmarcado na primeira execução.
  3. 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.
  4. 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.
  5. Selecione Transferir resultado para guardar formatted.json. Também pode usar Copiar texto para colocar o resultado noutro editor.
  6. 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çãoO que faz
2Usa dois espaços por nível de aninhamento. É a opção usada nas instruções principais.
4Usa 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.
MinificarRemove 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.

  1. Mantenha Indentação em 2, marque Ordenar chaves dos objetos e selecione Processar entrada.
  2. 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.
  3. 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çãoO que faz
Copiar textoCopia 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 resultadoGuarda 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 resultadosAbre a janela de impressão do navegador para o texto do resultado.
Carregar exemploSubstitui 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 tudoApaga 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ênciaDefiniçõesBytes
order-formatted.jsonDois espaços; ordem original das chaves300
order-minified.jsonMinificar; ordem original das chaves193
order-sorted.jsonDois espaços; chaves dos objetos ordenadas300

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.

Ferramentas relacionadas

Fontes

RFC 8259 · JSON