Formatador e Embelezador de JSON: Impressão Bonita de JSON com Indentação
Formate e embeleze seus dados JSON com a indentação adequada. Torna o JSON bruto legível com destaque de sintaxe e validação.
Formatador de JSON
Formate e embelezar seu JSON com esta ferramenta simples
JSON formatado aparecerá aqui...
Documentação
Formatador JSON
Introdução
JSON (JavaScript Object Notation) é um formato leve de intercâmbio de dados que se tornou o padrão para troca de dados em aplicações web. Apesar de sua simplicidade, os dados JSON podem se tornar difíceis de ler quando estão minificados ou carecem de formatação adequada. Esta ferramenta ajuda você a transformar cadeias JSON brutas e não formatadas em um formato bem estruturado e indentado que é muito mais fácil de ler e analisar.
A formatação JSON (também conhecida como "impressão bonita") adiciona indentação consistente, quebras de linha e espaçamento para tornar a estrutura hierárquica dos dados JSON visualmente aparente. Isso é particularmente valioso ao trabalhar com objetos aninhados complexos ou grandes conjuntos de dados onde os relacionamentos entre os elementos, de outra forma, podem ser difíceis de discernir.
Nosso formato JSON fornece uma interface simples para embelezar seus dados JSON com a indentação e estrutura adequadas, tornando-os mais legíveis para humanos, enquanto mantém sua validade para máquinas.
Sintaxe e Estrutura JSON
JSON é construído em duas estruturas principais:
- Objetos: Coleções de pares nome/valor delimitados por chaves
{}
. Cada nome é seguido por dois pontos:
e os pares são separados por vírgulas,
.
1 {"nome": "João", "idade": 30, "cidade": "Nova York"}
2
- Arrays: Listas ordenadas de valores delimitadas por colchetes
[]
. Os valores são separados por vírgulas,
.
1 ["maçã", "banana", "cereja"]
2
Os valores JSON podem ser:
- Strings (entre aspas duplas):
"Olá Mundo"
- Números:
42
ou3.14159
- Booleanos:
true
oufalse
- Nulo:
null
- Objetos:
{"chave": "valor"}
- Arrays:
[1, 2, 3]
JSON válido deve seguir estas regras de sintaxe:
- Os nomes devem ser strings entre aspas duplas
- Os valores devem ser um dos tipos de dados JSON válidos
- Não são permitidas vírgulas finais
- Não são permitidos comentários
- Não são permitidas funções ou métodos
Erros comuns de sintaxe incluem:
- Chaves/colchetes ausentes ou incompatíveis
- Faltando aspas ao redor dos nomes das propriedades
- Usando aspas simples em vez de aspas duplas
- Incluindo vírgulas finais
- Usando indefinido como um valor
Como Funciona a Formatação JSON
A formatação JSON transforma JSON compacto e minificado em uma forma mais legível ao:
-
Analisar: A cadeia JSON é primeiro analisada para garantir que seja válida e para criar uma representação em memória da estrutura de dados.
-
Indentação: Cada nível aninhado de objetos e arrays é indentado (normalmente por 2 ou 4 espaços) para representar visualmente a hierarquia.
-
Quebras de Linha: Novas linhas são adicionadas após cada propriedade ou elemento de array para melhorar a legibilidade.
-
Espaçamento: Espaçamento consistente é adicionado em torno de dois pontos e vírgulas.
Por exemplo, este JSON minificado:
1{"nome":"João Silva","idade":30,"endereço":{"rua":"123 Rua Principal","cidade":"Qualquer Cidade","estado":"SP"},"hobbies":["leitura","caminhada","fotografia"]}
2
Torna-se este JSON formatado:
1{
2 "nome": "João Silva",
3 "idade": 30,
4 "endereço": {
5 "rua": "123 Rua Principal",
6 "cidade": "Qualquer Cidade",
7 "estado": "SP"
8 },
9 "hobbies": [
10 "leitura",
11 "caminhada",
12 "fotografia"
13 ]
14}
15
Nosso formatador usa uma indentação padrão de 2 espaços por nível, que é uma convenção comum na comunidade de desenvolvimento e fornece um bom equilíbrio entre compactação e legibilidade.
Validação JSON
Um aspecto crítico da formatação JSON é a validação. Antes que o JSON possa ser formatado, ele deve ser sintaticamente válido de acordo com a especificação JSON. Erros comuns de validação incluem:
-
Erros de Sintaxe:
- Nomes de propriedades não citados
- Faltando ou vírgulas extras
- Estruturas aninhadas inadequadas
- Strings, objetos ou arrays não fechados
-
Erros de Tipo de Dados:
- Usando valores específicos do JavaScript como
indefinido
ouNaN
- Incluindo funções ou métodos
- Usando aspas simples para strings
- Usando valores específicos do JavaScript como
Quando você encontra JSON inválido, a mensagem de erro pode ajudar a identificar o problema. A maioria dos analisadores JSON indicará a posição onde a análise falhou, o que pode ajudar a localizar o problema. Nossa ferramenta fornece mensagens de erro claras para ajudar você a identificar e corrigir problemas em seus dados JSON.
Casos de Uso
A formatação JSON é valiosa em numerosos cenários:
Desenvolvimento e Teste de APIs
Ao trabalhar com APIs RESTful, JSON formatado facilita:
- Inspecionar cargas úteis de resposta
- Depurar corpos de solicitação
- Documentar exemplos de API
- Verificar se as estruturas de dados correspondem às expectativas
Gerenciamento de Configuração
Muitas aplicações modernas usam JSON para configuração:
- Arquivos de configurações de aplicativos
- Configurações de ambiente
- Especificações de construção e implantação
- Modelos de Infraestrutura como Código (por exemplo, AWS CloudFormation, Terraform)
Análise e Visualização de Dados
A formatação JSON ajuda quando:
- Explorando conjuntos de dados
- Preparando dados para visualização
- Compreendendo esquemas de dados
- Identificando padrões em dados estruturados
Depuração e Resolução de Problemas
A formatação JSON adequada é essencial quando:
- Depurando aplicações web
- Inspecionando localStorage ou sessionStorage
- Analisando respostas de rede
- Resolvendo problemas de integração de dados
Fins Educacionais
A formatação JSON clara é valiosa para:
- Ensinar estruturas de dados
- Demonstrar relacionamentos aninhados
- Explicar conceitos de API
- Ilustrar princípios de modelagem de dados
Alternativas
Embora nosso formatador JSON baseado na web seja conveniente para tarefas rápidas de formatação, várias alternativas existem para diferentes cenários:
Ferramentas de Desenvolvedor do Navegador
Navegadores modernos incluem capacidades de formatação JSON:
- O DevTools do Chrome e Edge formatam automaticamente as respostas JSON na aba Rede
- O visualizador JSON do Firefox fornece uma visualização interativa em árvore
- Extensões de navegador como JSONView podem formatar JSON diretamente no navegador
Editores de Código e IDEs
A maioria dos ambientes de desenvolvimento oferece formatação JSON:
- O Visual Studio Code possui formatação JSON embutida (Alt+Shift+F)
- IDEs da JetBrains (WebStorm, IntelliJ) incluem ferramentas JSON poderosas
- Sublime Text e Atom suportam formatação JSON por meio de plugins
Ferramentas de Linha de Comando
Para usuários de terminal ou automação:
jq
é um processador JSON leve e flexível de linha de comandojson_pp
vem pré-instalado em muitos sistemas Unixpython -m json.tool
fornece formatação rápida usando Python
Abordagens Programáticas
Ao formatar JSON dentro de aplicações:
1// JavaScript
2const formatted = JSON.stringify(jsonObject, null, 2);
3
1# Python
2import json
3formatted = json.dumps(json_object, indent=2)
4
1// Java com Gson
2Gson gson = new GsonBuilder().setPrettyPrinting().create();
3String formatted = gson.toJson(jsonObject);
4
1# Ruby
2require 'json'
3formatted = JSON.pretty_generate(json_object)
4
1// PHP
2$formatted = json_encode($jsonObject, JSON_PRETTY_PRINT);
3
História
JSON foi criado por Douglas Crockford no início dos anos 2000 como uma alternativa leve ao XML. O formato foi derivado da sintaxe de literal de objeto do JavaScript, mas projetado para ser independente de linguagem. Em 2006, o JSON foi formalmente especificado no RFC 4627 e rapidamente ganhou popularidade devido à sua simplicidade e compatibilidade com o JavaScript.
Antes do JSON, o XML era o formato dominante para intercâmbio de dados, mas sua verbosidade e complexidade o tornavam incômodo para muitas aplicações. O JSON ofereceu uma sintaxe mais concisa que era mais fácil de ler e escrever, tanto para humanos quanto para máquinas. Ele também se alinhou perfeitamente ao modelo de objeto do JavaScript, tornando-se a escolha natural para aplicações web.
A adoção do JSON acelerou com o surgimento de AJAX e APIs RESTful no meio dos anos 2000. Na década de 2010, ele se tornou o padrão de fato para APIs web, arquivos de configuração e armazenamento de dados em bancos de dados NoSQL como MongoDB e CouchDB.
Hoje, o JSON é suportado por praticamente todas as linguagens de programação e é usado em inúmeras aplicações na web. Sua simplicidade, flexibilidade e suporte universal o tornaram um dos formatos de dados mais importantes na computação moderna.
Exemplos de Código
Aqui estão exemplos de como formatar JSON em várias linguagens de programação:
1// Formatação JSON em JavaScript
2function formatJSON(jsonString) {
3 try {
4 const parsedData = JSON.parse(jsonString);
5 return JSON.stringify(parsedData, null, 2);
6 } catch (error) {
7 return `Erro: ${error.message}`;
8 }
9}
10
11// Exemplo de uso
12const rawJSON = '{"nome":"João","idade":30,"cidade":"Nova York"}';
13console.log(formatJSON(rawJSON));
14
1# Formatação JSON em Python
2import json
3
4def format_json(json_string):
5 try:
6 parsed_data = json.loads(json_string)
7 return json.dumps(parsed_data, indent=2)
8 except json.JSONDecodeError as e:
9 return f"Erro: {str(e)}"
10
11# Exemplo de uso
12raw_json = '{"nome":"João","idade":30,"cidade":"Nova York"}'
13print(format_json(raw_json))
14
1// Formatação JSON em Java com Gson
2import com.google.gson.Gson;
3import com.google.gson.GsonBuilder;
4import com.google.gson.JsonSyntaxException;
5
6public class JSONFormatter {
7 public static String formatJSON(String jsonString) {
8 try {
9 Gson gson = new GsonBuilder().setPrettyPrinting().create();
10 Object parsedJson = gson.fromJson(jsonString, Object.class);
11 return gson.toJson(parsedJson);
12 } catch (JsonSyntaxException e) {
13 return "Erro: " + e.getMessage();
14 }
15 }
16
17 public static void main(String[] args) {
18 String rawJSON = "{\"nome\":\"João\",\"idade\":30,\"cidade\":\"Nova York\"}";
19 System.out.println(formatJSON(rawJSON));
20 }
21}
22
1// Formatação JSON em PHP
2function formatJSON($jsonString) {
3 $result = json_decode($jsonString);
4 if (json_last_error() !== JSON_ERROR_NONE) {
5 return "Erro: " . json_last_error_msg();
6 }
7 return json_encode($result, JSON_PRETTY_PRINT);
8}
9
10// Exemplo de uso
11$rawJSON = '{"nome":"João","idade":30,"cidade":"Nova York"}';
12echo formatJSON($rawJSON);
13
1# Formatação JSON em Ruby
2require 'json'
3
4def format_json(json_string)
5 begin
6 parsed_data = JSON.parse(json_string)
7 return JSON.pretty_generate(parsed_data)
8 rescue JSON::ParserError => e
9 return "Erro: #{e.message}"
10 end
11end
12
13# Exemplo de uso
14raw_json = '{"nome":"João","idade":30,"cidade":"Nova York"}'
15puts format_json(raw_json)
16
1// Formatação JSON em C# com Newtonsoft.Json
2using Newtonsoft.Json;
3using System;
4
5class JSONFormatter
6{
7 public static string FormatJSON(string jsonString)
8 {
9 try
10 {
11 object parsedJson = JsonConvert.DeserializeObject(jsonString);
12 return JsonConvert.SerializeObject(parsedJson, Formatting.Indented);
13 }
14 catch (JsonException e)
15 {
16 return $"Erro: {e.Message}";
17 }
18 }
19
20 static void Main()
21 {
22 string rawJSON = "{\"nome\":\"João\",\"idade\":30,\"cidade\":\"Nova York\"}";
23 Console.WriteLine(FormatJSON(rawJSON));
24 }
25}
26
1// Formatação JSON em Go
2package main
3
4import (
5 "encoding/json"
6 "fmt"
7)
8
9func formatJSON(jsonString string) string {
10 var parsedData interface{}
11 err := json.Unmarshal([]byte(jsonString), &parsedData)
12 if err != nil {
13 return fmt.Sprintf("Erro: %s", err.Error())
14 }
15
16 formattedBytes, err := json.MarshalIndent(parsedData, "", " ")
17 if err != nil {
18 return fmt.Sprintf("Erro: %s", err.Error())
19 }
20
21 return string(formattedBytes)
22}
23
24func main() {
25 rawJSON := `{"nome":"João","idade":30,"cidade":"Nova York"}`
26 fmt.Println(formatJSON(rawJSON))
27}
28
Casos Especiais e Considerações
Ao trabalhar com formatação JSON, esteja ciente desses desafios potenciais:
Arquivos JSON Grandes
Arquivos JSON muito grandes (vários megabytes ou mais) podem causar problemas de desempenho em formatadores baseados em navegador. Para tais casos:
- Considere usar ferramentas de linha de comando como
jq
- Divida o JSON em pedaços menores
- Use analisadores de streaming para processar sem carregar todo o arquivo na memória
Estruturas Profundamente Aninhadas
JSON extremamente aninhado (mais de 10-20 níveis de profundidade) pode se tornar difícil de navegar, mesmo quando formatado. Nesses casos:
- Considere achatar a estrutura, se possível
- Use visualizadores JSON colapsáveis
- Extraia e trabalhe com seções específicas do JSON
Caracteres Especiais e Unicode
JSON suporta Unicode, mas alguns formatadores podem ter problemas com certos caracteres:
- Certifique-se de que seu formatador lida corretamente com emojis e outros caracteres Unicode
- Tenha cuidado com caracteres de controle e sequências de escape
- Verifique se a saída formatada preserva todos os caracteres originais
Precisão Numérica
JSON não especifica precisão para números, o que pode levar a problemas com inteiros muito grandes ou valores de ponto flutuante:
- Esteja ciente de que algumas implementações do JavaScript podem perder precisão para inteiros além de 53 bits
- Considere usar representações de string para valores numéricos precisos
- Teste com valores extremos se sua aplicação exigir alta precisão
Objetos e Arrays Vazios
JSON válido inclui objetos vazios {}
e arrays []
, que devem ser formatados adequadamente:
- Objetos vazios devem aparecer como
{}
- Arrays vazios devem aparecer como
[]
- Estruturas aninhadas vazias devem manter a indentação adequada
Referências
- JSON.org - O site oficial da especificação JSON
- RFC 8259 - O formato de intercâmbio de dados JSON
- MDN Web Docs: JSON - Documentação abrangente sobre JSON em JavaScript
- JSON Lint - Um validador JSON popular online
- jq - Um processador JSON leve e flexível de linha de comando
Feedback
Clique no aviso de feedback para começar a dar feedback sobre esta ferramenta
Ferramentas Relacionadas
Descubra mais ferramentas que podem ser úteis para seu fluxo de trabalho