Analise tamanho, tipos e profundidade JSON
Meça o tamanho do JSON em bytes UTF-8, compare a economia da minificação e examine valores, arrays e profundidade.
Espaço de trabalho da ferramenta
Analisador de tamanho JSON
Ative JavaScript para analisar JSON localmente no navegador.
Analise um documento JSON estrito, incluindo raízes primitivas. Chaves duplicadas após decodificação são rejeitadas. A análise começa apenas ao pressionar Analisar JSON.
Seu JSON e o relatório permanecem nesta aba. Nada é enviado ou salvo.
Texto atual: até 1000000 unidades UTF-16 e 4000000 bytes UTF-8; arquivo: 4000000 bytes; profundidade de contêineres: 200; nós: 100000.
Texto atual
Parsing: 1000000 unidades de trabalho; medição: 1000000 unidades; análise: 100000 visitas; rankings: 4000000 comparações. Cada caminho completo: 10000 unidades; caminhos combinados: 400000. Tempo máximo: 15000 ms. Um caminho ou o trabalho podem ultrapassar o orçamento mesmo quando tamanho e nós cabem.
Ative JavaScript para analisar JSON localmente no navegador.
Alguns diagnósticos foram omitidos.
Métricas exatas
Bytes medem a codificação UTF-8 do texto atual do editor. O comprimento usa unidades UTF-16, não caracteres visíveis. KiB e MiB auxiliares usam base 1024. A economia remove whitespace JSON fora de strings e um BOM inicial; não mede compressão, tráfego de rede nem RAM.
A profundidade do caminho conta propriedades e índices desde a raiz 0. A de contêineres conta objetos e arrays numa cadeia: contêiner raiz 1, primitiva raiz 0. Chaves são membros de objetos, não índices de arrays.
| Tipo | Nós | Porcentagem de nós |
|---|
As porcentagens usam a quantidade de nós de valor, incluindo contêineres e raiz, não bytes. Chaves não contam como strings. Porcentagens arredondadas podem não somar 100%.
Arrays são ordenados por elementos diretos; caminhos por segmentos. Empates seguem a pré-ordem da fonte. Cada lista mostra até 20 nós. As métricas globais continuam exatas.
Maiores arrays
O documento não contém arrays.
| Caminho completo | Tipo | Elementos diretos | Profundidade do caminho | Ações |
|---|
Caminhos mais profundos
| Caminho completo | Tipo | Profundidade do caminho | Ações |
|---|
O clipboard está indisponível. Selecione e copie este caminho completo.
Quanto espaço seu JSON ocupa?
Cole JSON ou abra um arquivo .json UTF-8 e pressione Analisar JSON. O relatório mede o texto do editor, conta seus valores e mostra os caminhos mais profundos e os arrays com mais elementos. O processamento ocorre no navegador; o documento e o relatório não são enviados nem salvos.
A entrada precisa ser JSON estrito. Comentários, vírgulas finais e chaves duplicadas são rejeitados. Valores isolados como null, 42 e "" são válidos, assim como {} e [].
Por que bytes e comprimento são diferentes
Os bytes UTF-8 indicam o espaço necessário para codificar o texto. O comprimento UTF-16 conta as unidades usadas nas strings do JavaScript. Nenhuma dessas medidas corresponde à quantidade de caracteres visíveis.
Por exemplo, {"é":"😀"} ocupa 13 bytes UTF-8 e 10 unidades UTF-16. Escrever "\u00E9" em vez de "é" ocupa mais bytes, embora as duas strings representem o mesmo valor. KiB e MiB usam múltiplos de 1024.
A medição inclui espaços e um BOM inicial, quando presente. Como o editor pode normalizar as quebras de linha, o resultado pode diferir do tamanho do arquivo original.
O que a minificação economiza
O relatório compara o texto atual com uma versão sem espaços, tabulações ou quebras de linha fora das strings. Também remove um BOM inicial. Espaços dentro das strings, ordem das chaves, escapes e números como 1.0, 1e0, -0 e 9007199254740993 são preservados. Um segundo BOM inicial é inválido.
Experimente este exemplo:
{"a":[null,{"b":true}],"c":"x"}
Ele já está minificado: as duas medidas dão 31 bytes, sem economia. São 6 valores e 3 chaves de objeto: 2 objetos, 1 array, 1 null, 1 booleano e 1 string.
Essas medidas descrevem o texto, não a compressão gzip/Brotli, o tráfego HTTP, a memória ou os tokens de IA. A ferramenta não baixa JSON minificado nem exporta o relatório.
Como ler a estrutura
Cada valor conta uma vez, incluindo a raiz e os contêineres vazios. As chaves são contadas separadamente. Os percentuais dos tipos mostram a quantidade de valores, não os bytes que ocupam.
A profundidade do caminho começa em zero na raiz. A profundidade de contêineres conta objetos e arrays ao longo do caminho. Ambas chegam a 3 no exemplo. O array $.a tem 2 elementos diretos; o valor mais profundo está em $.a[1].b.
Cada lista de detalhes mostra até 20 entradas. Os arrays são ordenados pela quantidade de elementos diretos, não por bytes; empates mantêm a ordem do documento. As linhas omitidas não alteram os totais, que abrangem o documento inteiro.
Use Copiar caminho para copiar um caminho completo ou Localizar na entrada para selecionar seu valor. Se editar o texto, faça a análise novamente.
Documentos grandes
| Limite | Máximo |
|---|---|
| Arquivo e texto em UTF-8 | 4.000.000 bytes |
| Comprimento do texto | 1.000.000 unidades UTF-16 |
| Contêineres aninhados | 200 níveis |
| Valores | 100.000 |
| Tempo de análise | 15 segundos |
Caminhos longos ou estruturas complexas podem atingir outros limites de processamento antes desses máximos. Se a análise falhar, nenhum relatório parcial será mostrado. Um aviso de precisão não significa que o texto medido foi arredondado; números fora do intervalo aceito, como 1e999, são rejeitados.
É necessário ter JavaScript e um navegador compatível com Workers. Cancelar mantém a entrada para você reduzir o documento e tentar novamente.