# Formatador JSON online

> O formatador de JSON organiza um texto JSON com indentação legível, minifica quando você precisa de um tamanho menor e aponta onde está o erro de sintaxe. Tudo é processado no seu navegador: o JSON colado não é enviado a nenhum servidor.

- Endereço oficial: https://pradev.com.br/formatador-json
- Categoria: JSON, dados e formatadores
- Tipo: Formatador
- Atualizado em: 2026-09-30
- Autor: Leonardo Gaertner (https://pradev.com.br/sobre)
- Preço: grátis, sem cadastro. O processamento acontece no navegador de quem usa.

## Como usar

1. Cole o JSON no campo da esquerda.
2. Escolha a indentação (2 espaços, 4 espaços ou tabulação) e, se quiser, ordenar as chaves.
3. Clique em Formatar para deixar legível ou em Minificar para remover espaços e quebras de linha.
4. Clique em Copiar para levar o resultado para o seu código.

## Como funciona

A ferramenta lê o texto com o interpretador de JSON do próprio navegador e o reescreve com a indentação escolhida. Se o texto não for um JSON válido, ela mostra a mensagem de erro e, quando o navegador informa a posição, a linha e a coluna.

O JSON é mais rígido que um objeto JavaScript: as chaves e os textos precisam de aspas duplas, não são permitidas aspas simples, vírgula sobrando no final nem comentários.

Como o navegador lê números como ponto flutuante de 64 bits, inteiros muito grandes (acima de 9.007.199.254.740.991) podem perder precisão. Se a sua API usa IDs desse tamanho, mantenha-os como texto: a ferramenta mostra um aviso quando encontra um número que seria arredondado. Quando há chaves repetidas no mesmo objeto, vale o último valor.

## Em código

Para formatar e validar JSON em código, leia o texto e escreva de novo com recuo, tratando o erro de leitura. No PHP, use as opções que mantêm acentos e barras.

```javascript
function formatarJSON(texto, espacos = 2) {
  return JSON.stringify(JSON.parse(texto), null, espacos);
}

function validarJSON(texto) {
  try {
    JSON.parse(texto);
    return { valido: true };
  } catch (erro) {
    return { valido: false, mensagem: erro.message };
  }
}
```

_JavaScript_

```python
import json


def _recusar(nome):
    raise ValueError(f"{nome} não é JSON válido")


def formatar_json(texto: str, espacos: int = 2) -> str:
    # parse_constant: o Python aceitaria NaN e Infinity, que o JSON não permite
    dados = json.loads(texto, parse_constant=_recusar)
    return json.dumps(dados, indent=espacos, ensure_ascii=False)


def validar_json(texto: str) -> dict:
    try:
        json.loads(texto, parse_constant=_recusar)
        return {"valido": True}
    except json.JSONDecodeError as e:
        return {"valido": False, "mensagem": e.msg, "linha": e.lineno, "coluna": e.colno}
    except ValueError as e:
        return {"valido": False, "mensagem": str(e)}
```

_Python. Recusa NaN e Infinity, que o Python aceitaria._

```php
<?php
function formatarJson(string $texto): string
{
    $dados = json_decode($texto, false, 512, JSON_THROW_ON_ERROR);
    // Sem as duas últimas opções, o PHP escreveria \u00e7 no lugar de ç
    // e \/ no lugar de /
    return json_encode(
        $dados,
        JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES
    );
}

function validarJson(string $texto): array
{
    try {
        json_decode($texto, false, 512, JSON_THROW_ON_ERROR);
        return ['valido' => true];
    } catch (JsonException $e) {
        return ['valido' => false, 'mensagem' => $e->getMessage()];
    }
}
```

_PHP_

## Perguntas frequentes

### Por que meu JSON dá erro?

Os motivos mais comuns são aspas simples no lugar de duplas, vírgula depois do último item, chaves sem aspas, comentários e texto solto antes ou depois do JSON. A mensagem de erro e a posição indicada ajudam a achar o ponto exato.

### O JSON que eu colo é enviado para algum servidor?

Não. A formatação acontece no seu navegador, e o conteúdo não é enviado nem armazenado pelo PraDev. Mesmo assim, evite colar segredos em qualquer ferramenta se não precisar.

### Qual a diferença entre formatar e minificar?

Formatar adiciona quebras de linha e indentação para facilitar a leitura. Minificar remove todo espaço desnecessário para reduzir o tamanho, o que é útil em requisições e arquivos de configuração.

### Ordenar as chaves altera o significado do JSON?

Não. A ordem das chaves em um objeto JSON não tem significado. Ordenar em ordem alfabética só facilita comparar dois JSONs. A ordem dos itens dentro de listas (arrays) é mantida.

## Guias

- [Como formatar e validar JSON em JavaScript, Python e PHP](https://pradev.com.br/guias/como-formatar-e-validar-json): Como deixar JSON legível e descobrir o erro de um JSON inválido em JavaScript, Python e PHP, com os erros mais comuns e as diferenças entre as linguagens.

## Ferramentas relacionadas

- [Codificar Base64](https://pradev.com.br/codificar-base64): Converta texto para Base64 online, com suporte a acentos (UTF-8) e opção URL-safe. Grátis, no navegador, sem enviar seus dados.
- [Decodificar Base64](https://pradev.com.br/decodificar-base64): Decodifique Base64 para texto online, com suporte a UTF-8 e Base64 URL-safe. Grátis, direto no navegador, sem enviar seus dados.
- [Gerador de UUID](https://pradev.com.br/gerador-de-uuid): Gere UUID v4 aleatório com um clique: em lote, em maiúsculas, com ou sem hífens. Grátis, gerado no seu navegador.
- [Conversor de Timestamp Unix](https://pradev.com.br/timestamp-converter): Converta timestamp Unix (segundos ou milissegundos) em data e hora, e data em timestamp. Grátis, com o seu fuso horário e em UTC.
- [Testador de Regex](https://pradev.com.br/regex-tester): Teste expressões regulares online: destaque dos casamentos, grupos e flags. Usa o motor do JavaScript. Grátis, direto no navegador.
- [Comparador JSON](https://pradev.com.br/comparador-json): Compare dois JSON online e veja o caminho de cada chave adicionada, removida ou alterada. A ordem das chaves não conta. Grátis.
