O que é um arquivo JSON, com o que abri-lo e como editá-lo
Resumo: De texto embaralhado no Bloco de Notas às três formas de abrir um arquivo JSON, passando por como confirmar que nada quebrou após editar e o que fazer quando um arquivo enorme não abre.

Resumo da ópera: antes de abrir um arquivo JSON, confirme sua codificação e o BOM e depois verifique se a estrutura é apenas um objeto ou um array; após editar, sempre valide com um analisador em vez de olhar colchetes e vírgulas a olho nu.
É simplesmente um arquivo de texto puro com extensão
.json, e até o Bloco de Notas consegue abri-lo. A verdadeira dor de cabeça não é "não abre", e sim que, depois de aberto, você não consegue ver o que quebrou.
1. O que realmente existe dentro de um arquivo JSON
Um arquivo JSON válido pode conter apenas uma de duas coisas: um objeto {...} ou um array [...]. Nada mais é permitido — sem declarações de variável, sem comentários, sem funções.
{
"name": "order service",
"port": 8080,
"debug": false,
"upstream": ["10.0.0.11", "10.0.0.12"],
"timeout": null
}
Reconhecer três coisas na estrutura já basta:
| O que você vê | Significado | Conceito de programação correspondente |
|---|---|---|
Pares chave-valor dentro de { } |
Um objeto; chaves precisam ser strings entre aspas duplas | Map / struct |
Uma sequência de valores dentro de [ ] |
Um array; os tipos dos elementos podem variar | List |
| Seis tipos de valor | String, número, booleano, null, objeto, array | Apenas esses seis; sem datas e sem inteiros |
A extensão do arquivo não determina o conteúdo: package.json, tsconfig.json e composer.json são todos a mesma coisa; ferramentas diferentes apenas combinaram de ler chaves diferentes deles.
2. Três formas de abri-lo, escolhidas pelo cenário
Só uma olhada rápida: abra no navegador. Arraste o arquivo para uma janela do Chrome ou Edge e o navegador o exibe como está; se uma extensão JSON Viewer estiver instalada, ele é formatado e tornando-se recolhível automaticamente.
Precisa editar o conteúdo: use um editor. VS Code, Sublime e Notepad++ trazem realce de sintaxe JSON e correspondência de colchetes, e Shift + Alt + F no VS Code formata o documento. Observe que o Bloco de Notas do Windows pode adicionar um BOM ao salvar, então suas alterações de configuração podem não entrar em vigor; é melhor evitá-lo.
Não quer instalar nada, só quer validar: use o formatador JSON online. Cole o conteúdo e você vê imediatamente números de linha e coluna, localização de erros e uma árvore recolhível; copie o resultado quando terminar. Os dados são processados localmente no navegador e não são enviados a nenhum servidor.
Arquivos grandes (dezenas de MB ou mais): não force a abertura em um editor. Abrir um arquivo JSON de 100 MB no VS Code vai travar até você questionar suas escolhas de vida; use a linha de comando para inspecionar a estrutura primeiro:
# Veja as primeiras 20 linhas para confirmar se é um array
head -n 20 data.json
# Use jq para listar as chaves de nível superior sem carregar o arquivo inteiro
jq -r 'keys[]' data.json | head
# Conte o comprimento do array
jq 'length' data.json
3. O que fazer quando o duplo clique abre texto embaralhado
Três causas, cada uma tratada de forma diferente:
- Na verdade é um arquivo binário (por exemplo, um pacote compactado ou um arquivo de banco de dados exportado, com extensão
.json). Usefile data.jsonpara ver o tipo real; não force que seja tratado como texto. - A codificação não é UTF-8. Texto em chinês codificado como GBK fica embaralhado em um ambiente UTF-8. Use "Reabrir com codificação" do editor para tentar GBK uma vez; se exibir corretamente, salve como UTF-8.
- O arquivo foi criptografado ou compactado. O sintoma é
PK(zip) ou um monte de sinais de interrogação no início; esses arquivos precisam primeiro ser descompactados ou descriptografados.
4. Como confirmar que nada quebrou após editar
O JSON não tem tolerância: uma vírgula faltando, uma vírgula a mais ou uma aspa faltando e o arquivo inteiro morre, e a localização do erro informada muitas vezes aponta para a linha seguinte. Por isso, você precisa validar após editar; não confie nos olhos.
As três ações de edição de alto risco, ordenadas pela frequência com que causam problemas:
| Ação | Consequência comum | Como evitar |
|---|---|---|
| Colar um bloco de configuração | Traz uma vírgula final ou pontuação de largura total | Formate uma vez imediatamente após colar |
| Trocar manualmente a ordem das chaves | Uma vírgula a mais ou a menos | Use os comandos de mover linha do editor; não redigite à mão |
| Excluir o último elemento de um array | Deixa ,] para trás |
Verifique se os colchetes se emparelham após excluir |
A validação é simples: cole no validador online e procure texto vermelho, ou execute uma linha na linha de comando:
python3 -m json.tool config.json > /dev/null && echo OK
Se imprimir OK, o arquivo é válido. Se você também quer validar os tipos dos campos (por exemplo, port precisa ser número e name não pode estar vazio), escrever um JSON Schema é bem mais confiável do que o olho humano.
5. Como .json difere de seus parentes próximos
| Extensão | Diferença | Um analisador padrão consegue ler |
|---|---|---|
.json |
JSON padrão | Sim |
.jsonc |
Permite comentários // e /* */ |
Não; os comentários precisam ser removidos antes |
.json5 |
Permite comentários, aspas simples, chaves sem aspas, vírgulas finais | Não; é preciso um analisador JSON5 |
.jsonl / .ndjson |
Um JSON independente por linha; o arquivo como um todo não é JSON válido | Não, não como um todo; é preciso ler linha a linha |
Não se surpreenda ao ver comentários em tsconfig.json; ele é na verdade tratado como .jsonc. Entregue o mesmo conteúdo ao JSON.parse e ele vai gerar um erro. Quando precisar converter entre eles, use JSON5 para JSON para remover comentários e vírgulas finais com um clique.
6. Quando é hora de trocar o formato de armazenamento
O JSON é adequado a cenários em que "a estrutura não é fixa, humanos precisam ler e o conteúdo atravessa linguagens". Se um arquivo passa de dezenas de MB, a estrutura dos campos é estável e você precisa de consultas condicionais, continuar com JSON é só arrumar problema para si mesmo — migre para SQLite, Parquet ou carregue em um banco de dados; a diferença de desempenho de leitura/gravação é de ordens de magnitude. Para os prós e contras específicos, veja Análise e streaming de JSON grande.
Perguntas frequentes
Como inspecionar um arquivo JSON grande demais para abrir?
Não force a abertura em um editor; abrir um arquivo JSON de 100 MB no VS Code vai travar até você questionar suas escolhas de vida. Use a linha de comando para inspecionar a estrutura primeiro: head -n 20 confirma se é um array, jq -r 'keys[]' lista apenas as chaves de nível superior e jq 'length' conta o comprimento do array. Nenhum desses comandos carrega o arquivo inteiro.
Por que minhas edições no Bloco de Notas impedem a configuração de entrar em vigor?
O Bloco de Notas do Windows pode adicionar um BOM ao salvar, e um arquivo com BOM falha na análise da configuração, então o conteúdo editado nunca entra em vigor. A recomendação do artigo é usar editores como VS Code, Sublime ou Notepad++, que trazem realce de sintaxe JSON e correspondência de colchetes. Se você já usou o Bloco de Notas, salve novamente como "UTF-8 sem BOM" e tente de novo.
Posso tratar um arquivo JSON como JSON5 e adicionar comentários?
Não — um analisador padrão não permite comentários em um arquivo .json e JSON.parse gera um erro imediatamente. Comentários pertencem a arquivos .jsonc ou .json5 lidos pelo analisador correspondente. Arquivos como tsconfig.json são na verdade tratados como .jsonc; entregue o mesmo conteúdo ao JSON.parse e ele falha.