ToolActToolAct

Ferramenta de Formatação JSON

Entrada JSON
Saída Formatada
Linhas: 1Caracteres: 0Bytes: 0
Linhas: 1Caracteres: 0

O que é Formatador JSON?

O formatador JSON torna JSON compacto ou bagunçado legível ao adicionar indentação, quebras de linha e estrutura visível. JSON aparece em respostas de API, configurações, logs, feature flags, dados de teste e integrações no-code, onde uma vírgula ausente, aspas incorretas ou valor aninhado inesperado pode causar erro de parsing. A ferramenta ajuda a inspecionar objetos, arrays, chaves, valores e possíveis pontos de erro rapidamente, e também pode compactar novamente quando uma carga menor é necessária. Formatação não muda o significado dos dados nem valida automaticamente um schema de negócio. Em APIs reais, tipos, campos obrigatórios, null e contratos de versão precisam de revisão separada.

Como Usar

Como usar

  1. Cole ou insira dados JSON na caixa de entrada à esquerda
  2. Selecione o tamanho da indentação (2 espaços, 4 espaços ou Tab)
  3. Clique em Format para embelezar ou em Minify para remover espaços em branco
  4. Os resultados aparecem automaticamente à direita, com destaque de sintaxe
  5. Clique em Copy ou Download para salvar o resultado

Observações sobre Validação de JSON

  • A formatação comprova que o texto é um JSON válido, mas não garante que os dados correspondam ao schema do seu negócio.
  • Quando aparecerem erros, verifique a linha e a coluna indicadas em busca de aspas simples, vírgulas finais, comentários ou caracteres de controle sem escape.

Casos de uso

Inspecionar respostas de API sem sair do navegadorCole um corpo de resposta compacto para expandir objetos e arrays aninhados com dois espaços, quatro espaços ou tabs. Erros de análise incluem linha e coluna calculadas quando possível, para que uma resposta malformada possa ser corrida sem precisar examinar o documento inteiro visualmente.
Preparar JSON para commits e revisõesQuando configurações, fixtures de exemplo ou dados de tradução precisam de um layout estável, o formatador produz saída determinística com a indentação selecionada. O modo minificador está disponível para a direção oposta, quando os mesmos dados precisam ser copiados para uma variável de ambiente ou campo de requisição.
Limpar dados sensíveis localmenteO parser, formatador, minificador, cópia e download são executados no navegador, mantendo tokens, campos de clientes, feature flags internas e formatos de API não publicados longe de embelezadores de terceiros. Valide a saída contra o spec OpenAPI ou JSON Schema separadamente, pois a formatação prova que o documento é analisado, mas não prova que os dados correspondem ao contrato esperado pelos consumidores. Fique atento à coerção silenciosa de tipos em campos numéricos grandes.
Comparar dois payloads JSON campo a campoFormate tanto uma resposta antiga quanto uma nova com indentação idêntica e alinhe-as lado a lado em um visualizador de diff para identificar chaves renomeadas, alterações de tipo e diferenças entre campos nulos e ausentes. Isso é mais rápido do que examinar JSON minificado bruto, especialmente para payloads de webhook onde um único campo trocado quebra os consumidores.
Compactar para variáveis de ambiente ou payloads curlMude para o modo minificador para encaixar um grande blob de configuração em uma variável de ambiente de linha única, arquivo .env ou argumento curl --data. Confirme com o parser de destino depois, pois alguns clientes HTTP ainda têm dificuldade com corpos de linha única muito longos, acima de algumas centenas de kilobytes. JSON estrito (RFC 8259) proíbe vírgulas finais e comentários, então quando a entrada é JSON5 ou HJSON, o parser estrito rejeitará linhas que começam com // ou terminam com ,]; nesse caso, ative um modo tolerante ou remova os comentários antes de formatar. Valores inteiros grandes acima de 2^53 perdem precisão porque o JavaScript os representa como doubles IEEE-754.

Princípio técnico

JSON (JavaScript Object Notation) é definido pela RFC 8259 / ECMA-404. A gramática é um subconjunto estrito de literais de objetos JavaScript: strings devem ser envolvidas em aspas duplas, chaves devem ser citadas, vírgulas finais são ilegais e comentários são proibidos. Um formatador analisa o documento com `JSON.parse()` no grafo de objetos da linguagem hospedeira, depois serializa novamente via `JSON.stringify(value, replacer, indent)` onde indent é um número (1-10 espaços) ou uma string (`'\t'`). A análise é O(n) e geralmente é mais rápida que a fase de stringify porque a construção da saída aloca novas strings. O tratamento de números segue a precisão dupla IEEE 754: inteiros maiores que `Number.MAX_SAFE_INTEGER` (2^53 - 1 = 9007199254740991) perdem precisão, então `9007199254740993` se transforma em `9007199254740992`. Decimais repetidos como `0.1 + 0.2` resultam em `0.30000000000000004` após a análise. Strings Unicode permitem escapes `\uXXXX` incluindo surrogate pairs (`\uD83D\uDE00` → 😀); o parser rejeita surrogates solitários não pareados. Espaços em branco são significativos apenas dentro de strings — qualquer combinação de espaço, tab, LF, CR entre tokens é analisada de forma idêntica. Relaxamentos não padrão comuns incluem JSON5 (comentários, vírgulas finais, chaves sem aspas) e JSONC (configuração do VS Code). JSON padrão não os permite e `JSON.parse` lança `SyntaxError` ao encontrá-los. Alternativas de streaming como NDJSON (um objeto por linha) e JSON Lines evitam carregar documentos inteiros na memória. Para entrada profundamente aninhada, o limite de pilha do V8 (~10.000 frames) limita parsers baseados em recursão; parsers de produção usam máquinas de estado iterativas para elevar o limite.

  • Gramática RFC 8259 / ECMA-404 — seis tipos de valor (objeto, array, string, número, true/false, null); strings com aspas duplas; chaves devem ser citadas; sem vírgulas finais; sem comentários.
  • `JSON.parse(text)` roda em O(n) e lança `SyntaxError` com offset de caractere em entrada inválida; `JSON.stringify(value, replacer, indent)` produz saída formatada com indentação de 2-10 espaços ou `'\t'`.
  • Precisão numérica IEEE 754: `Number.MAX_SAFE_INTEGER = 2^53 - 1`; inteiros além disso arredondam para o double representável mais próximo, então IDs de chat e IDs Snowflake do Twitter devem ser transportados como strings.
  • Escapes Unicode `\uXXXX` suportam todo o BMP; caracteres fora do BMP exigem encoding de surrogate pair `\uD83D\uDE00`; o parser rejeita surrogates solitários não pareados conforme RFC 8259 §8.2.
  • Falhas de análise comuns: strings com aspas simples (`'foo'`), vírgula final após o último item de array/objeto, caracteres de controle sem escape dentro de strings, barra invertida sem escape, `}`/`]` de fechamento ausente, BOM (`\uFEFF`) no início.
  • Referências circulares lançam `TypeError: cyclic object value` em `JSON.stringify`; use um callback `replacer` com WeakSet para quebrar ciclos, ou bibliotecas como `flatted` / `json-stringify-safe`.
  • Variantes não padrão: JSON5 (`.json5`, permite comentários e vírgulas finais), JSONC (configuração VS Code), NDJSON / JSON Lines (um objeto por linha, amigável para streaming) — todos rejeitados pelo `JSON.parse` estrito.

Exemplos

Exemplo de objeto

Entrada:
{
  "name": "ToolAct",
  "type": "web tool",
  "active": true
}

Saída: formatado com indentação de 2 espaços e ordem de chaves estável

Exemplo de array

Entrada:  [1,2,3,"a","b","c"]
Saída: formatado com indentação de 2 espaços; números permanecem numéricos, strings mantêm aspas

Estrutura aninhada

Entrada:
{"user":{"name":"Alex","skills":["JavaScript","Python"]}}

Saída:
{
  "user": {
    "name": "Alex",
    "skills": [
      "JavaScript",
      "Python"
    ]
  }
}
Observação: objetos e arrays aninhados são indentados recursivamente; escolha a largura da indentação na barra de ferramentas

Perguntas frequentes

O que o formatador faz?

Reformata JSON: pretty-print com a indentação escolhida (2 ou 4 espaços) ou minifica em uma única linha. Valida durante o parse, então erros de sintaxe são reportados com linha e coluna.

Por que meu JSON foi rejeitado como inválido?

Causas comuns: vírgulas finais (válidas em JS, ilegais em JSON), strings com aspas simples (devem ser duplas), chaves sem aspas, comentários (// ou /* */) ou colchetes/chaves faltando. A página informa a localização da falha de parse. JSON5 e JSONC (JSON com comentários) são supersets do JSON — use um parser diferente para esses formatos.

Ele preserva a ordem das chaves?

A especificação JSON diz que a ordem das chaves não é significativa, mas a maioria dos parsers a preserva no round-trip. Esta ferramenta mantém a ordem de inserção, o que normalmente é o que você quer para diffs legíveis.

Ele consegue lidar com arquivos JSON muito grandes?

Navegadores modernos lidam com arquivos JSON de 10-50 MB, mas isso pode deixar o editor lento. Para arquivos com centenas de MB, use um parser de streaming (jq na linha de comando, ferramentas ndjson); parsers de navegador carregam toda a árvore na memória.

Meu JSON é enviado para algum servidor?

Não. O parse e a formatação rodam no seu navegador via JSON.parse e JSON.stringify. O JSON colado não é transmitido.

Por que números grandes estão perdendo precisão?

O JSON.parse do JavaScript usa Number, que é de precisão dupla IEEE 754. Inteiros acima de 2^53 perdem precisão (por exemplo, 9007199254740993 é silenciosamente arredondado). Para BigInt ou parse que preserve strings, use um parser personalizado ou marque os números grandes como strings já no produtor.

E sobre JSONC (JSON com comentários)?

O JSON estrito proíbe comentários. Algumas IDEs (arquivos de configuração do VS Code) usam JSONC, que adiciona comentários // e /* */. O formatador normalmente oferece um modo 'JSONC' que preserva os comentários; em modo estrito, comentários são erro de sintaxe.