Validador e embelezador de JSON

5 de 2 avaliações
Validador e embelezador de JSON

O Validador e embelezador de JSON é uma ferramenta gratuita que verifica se o JSON está sintaticamente correto e formata o conteúdo válido para facilitar a leitura de sua estrutura.

O que a validação e o embelezamento de JSON fazem?

A validação confirma se a entrada segue a gramática do JSON, enquanto o embelezamento apresenta objetos e arrays válidos com espaçamento e recuo consistentes. Isso é útil para depurar respostas de APIs, conferir configurações antes da implantação ou ler dados compactos fornecidos por terceiros.

A sintaxe do JSON é mais rígida que a de um objeto literal do JavaScript. Os nomes das propriedades devem usar aspas duplas, strings não podem usar aspas simples e objetos e arrays não podem ter vírgula depois do último item. Comentários, undefined, NaN e Infinity também não fazem parte da especificação JSON.

Esta ferramenta usa a função json_decode do PHP no servidor. A entrada é enviada ao servidor por HTTPS e não é armazenada. Como os dados saem do seu dispositivo, remova senhas, tokens de acesso e dados pessoais caso as regras de tratamento de dados da sua organização não permitam o envio dessas informações a um servidor externo.

Como validar e embelezar um JSON?

Cole o conteúdo no campo JSON e execute a ferramenta. Para obter um resultado útil, informe um valor JSON completo, não apenas parte de um objeto copiada de uma linha de log.

  1. Copie a resposta bruta, o bloco de configuração ou outro valor JSON sem os rótulos exibidos ao redor no console.
  2. Cole o conteúdo no campo JSON, preservando as aspas e os caracteres de escape.
  3. Execute a validação e confira o resultado formatado ou o erro informado.
  4. Se a validação falhar, corrija o primeiro problema aparente de sintaxe e execute-a novamente. Uma única aspa ausente pode fazer com que vários caracteres posteriores sejam interpretados incorretamente.
A ferramenta Validador e embelezador de JSON no digily.link, com o formulário de entrada

Os quatro caracteres de espaço em branco permitidos entre tokens JSON, espaço (U+0020), tabulação (U+0009), avanço de linha (U+000A) e retorno de carro (U+000D), não têm significado. Portanto, podem ser adicionados ou removidos sem alterar os dados. Já o espaço em branco dentro de uma string entre aspas faz parte dos dados e deve permanecer inalterado. A pontuação dentro das strings também é preservada, embora aspas, barras invertidas e caracteres de controle precisem da sequência de escape apropriada.

Como interpretar o resultado da validação?

Um resultado bem-sucedido indica que o PHP conseguiu decodificar a entrada como JSON. Uma falha significa que o analisador não conseguiu interpretá-la como um único valor JSON completo e válido. Em seguida, o embelezamento deixa visíveis os níveis de aninhamento e os limites dos objetos e arrays válidos.

Entre as causas mais comuns de falha estão:

  • uma vírgula antes de } ou ];
  • um nome de propriedade sem aspas, como {name: "Ada"};
  • strings entre aspas simples;
  • uma vírgula ausente entre propriedades ou elementos de um array;
  • uma aspa dupla ou barra invertida sem escape dentro de uma string;
  • um objeto, array ou string incompleto;
  • uma entrada UTF-8 inválida ou um caractere de controle bruto dentro de uma string;
  • uma parte inteira com zeros à esquerda desnecessários, como 01 ou -01, ou valores que não pertencem ao JSON, como NaN.

Um campo vazio não é um JSON válido. Por outro lado, um valor isolado como 42, true, null ou "hello" é um JSON válido, mesmo não sendo um objeto nem um array. Conteúdos com aninhamento muito profundo também podem ultrapassar o limite de níveis do decodificador.

A validação de sintaxe não confirma se os dados correspondem ao contrato de uma API. Um documento pode ser um JSON válido e ainda conter uma string onde o aplicativo espera um número, omitir uma propriedade obrigatória ou usar um formato de data não aceito. Para verificar esses requisitos, use JSON Schema ou validações no nível do aplicativo.

Exemplo de resultado gerado pela ferramenta Validador e embelezador de JSON

Exemplos práticos de JSON

Entrada compacta válida:

{"name":"Ada","active":true,"roles":["admin","editor"]}

O resultado embelezado exibe as propriedades e os elementos do array em níveis separados e recuados. Os valores continuam sendo, respectivamente, uma string, um booleano e um array. A formatação altera a apresentação, não os tipos de dados subjacentes.

Entrada inválida com uma vírgula depois da última propriedade:

{"name":"Ada","active":true,}

A validação falha porque o JSON não permite uma vírgula depois da propriedade final. Remova essa vírgula para tornar o objeto válido.

Textos acentuados e com caracteres não latinos podem aparecer diretamente em strings JSON quando a entrada usa UTF-8 válido. Por exemplo, {"city":"Zürich","greeting":"こんにちは"} é válido. A notação de escape JSON, como \u00fc, é outra representação válida de determinados caracteres Unicode, embora caracteres fora do Plano Multilíngue Básico exijam pares substitutos.

Quando não vale a pena embelezar um JSON?

O embelezamento é desnecessário quando apenas uma máquina lerá o JSON e não houver previsão de inspeção humana ou revisão em controle de versão. Recuos e quebras de linha adicionais aumentam a quantidade de bytes transferidos, por isso as respostas em produção costumam ser enviadas de forma compacta.

Também há pouca vantagem em minificar um JSON que já está compacto. Repetir a minificação não reduz nomes fixos de propriedades nem valores de strings, e alterar esses valores mudaria os dados. Para JavaScript destinado à implantação, em vez de dados JSON, o Minificador de JS é a opção mais apropriada.

O embelezamento é mais útil ao inspecionar estruturas ou valores JSON durante a depuração, a revisão de código e as verificações anteriores à implantação. Ele evidencia problemas de aninhamento, facilita a leitura de arrays grandes e produz diferenças mais claras quando uma configuração é adicionada ao Git. A ferramenta não corrige automaticamente um JSON malformado nem determina qual era o significado pretendido de um fragmento ambíguo.

Perguntas frequentes

JSON pode ter comentários?

Não. O JSON padrão não possui sintaxe para comentários, portanto // comment e /* comment */ fazem a validação falhar. Se um arquivo de configuração precisar de comentários, use um formato que os aceite ou remova-os antes de enviar o conteúdo a um analisador JSON estrito.

Nomes de propriedades duplicados são rejeitados?

Não necessariamente. A especificação JSON diz que os nomes dos membros de um objeto devem ser únicos, mas os analisadores nem sempre tratam nomes duplicados como erro de sintaxe. A decodificação do PHP geralmente mantém o último valor. Portanto, se for importante preservar todas as ocorrências, detecte as duplicatas antes da validação.

Posso validar um arquivo JSON Lines?

Não como um único documento JSON. O JSON Lines, também chamado de NDJSON, contém um valor JSON separado em cada linha, enquanto um analisador JSON comum espera um único valor no nível superior. Valide cada linha de forma independente ou converta os registros em um único array JSON.

A ordem das propriedades de um objeto JSON importa?

Os aplicativos não devem depender da ordem das propriedades de objetos JSON. Arrays são ordenados, mas objetos representam coleções de membros nomeados, e outro analisador ou serializador pode gerar esses membros em uma ordem diferente. Se a sequência tiver significado, coloque os valores em um array.

Por que um arquivo JSON falha mesmo parecendo correto?

Uma marca de ordem de bytes invisível, UTF-8 malformado ou um caractere de controle sem escape pode fazer um texto aparentemente correto falhar. Copiar o conteúdo de um terminal também pode acrescentar prefixos, como rótulos de status ou registros de data e hora. Inspecione os bytes brutos ou abra o arquivo em um editor que consiga exibir a codificação e os caracteres de controle.

Verificações finais

Antes de implantar o JSON corrigido, compare os tipos de dados, não apenas os valores visíveis, confira se as sequências de escape não foram alteradas e execute o aplicativo que consumirá os dados ou a validação de esquema correspondente. Ao diagnosticar dados de terceiros, mantenha uma cópia intacta da resposta original para que a formatação não oculte a origem do problema.

Ferramentas populares