Como ler um documento nesta visão

O documento que você cola à esquerda é analisado enquanto você digita e desenhado à direita como uma árvore colorida: chaves, textos, números, true/false e null têm cada um a sua cor, e todo objeto ou array traz um marcador que o recolhe para Object{…} ou Array[n]. Não há botão de executar: os dois painéis acompanham a edição.

Tudo roda na aba: o texto é analisado e desenhado por JavaScript no navegador e nenhuma requisição o transporta. Texto que começa com < e termina com > é tratado como XML e convertido antes.

  1. Cole ou digite o JSON na caixa da esquerda. O painel da direita é reconstruído a cada tecla.
  2. Clique em um marcador para recolher um objeto ou array em Object{…} ou Array[n]; clicar de novo restaura o ramo.
  3. Pressione JSON compacto para ver o mesmo documento em uma linha, ou Visão XML para ver uma representação XML. O mesmo botão traz a árvore de volta.
  4. Pressione Limpar para esvaziar os dois painéis. Uma string que seja apenas um endereço http:// ou https:// aparece como link.
  5. Quando o texto não é analisado, o painel da direita informa a linha, a posição e o token que o analisador esperava, e os botões de JSON compacto e Visão XML avisam que não há nada a mostrar em vez de exibir o documento anterior.

O que esta visão faz com o documento

A árvore à direita

A árvore é montada a partir do documento analisado, não do texto: as chaves mantêm a ordem do documento e os valores ganham cor por tipo. Recolher troca um ramo pelo seu marcador, e o marcador de um array também mostra quantos elementos ele tem.

Strings que são um único endereço http:// ou https:// sem espaços viram links. Marcação dentro de uma chave ou de uma string é impressa como texto em vez de interpretada, então um documento não consegue injetar elementos na página.

O que o analisador aceita e o que ele muda

O analisador é JSON estrito: comentários, vírgulas finais, chaves entre aspas simples, NaN e números com zero à esquerda são recusados. Um documento recusado é informado com o número da linha, um trecho com um cursor sob a posição e o token que o analisador esperava.

Chaves duplicadas ficam com o último valor. Números são lidos como números de JavaScript, e isso aparece nos extremos: dígitos além dos 15–16 dígitos significativos de um double são arredondados (12345678901234567890 aparece como 12345678901234567000), 1e21 aparece como 1e+21, e um valor fora do alcance de um double, como 1e400, aparece como Infinity na árvore e como null na visão compacta, porque essa visão é a saída de JSON.stringify.

XML na entrada e na saída

O XML é convertido com as convenções da própria ferramenta: atributos viram chaves @nome, elementos irmãos repetidos viram arrays, CDATA vira texto e a declaração e os comentários são descartados. Um elemento que tem texto e elementos filhos mantém os filhos e coloca o texto ao redor em uma chave #text.

A visão XML escreve o documento atual de volta como XML. Texto e valores de atributo são escapados, nomes que o XML não aceita viram nomes legais (espaço ou dígito inicial viram sublinhado) e uma chave #text é escrita como texto, não como tag. O resultado é texto somente leitura, que você pode selecionar e copiar.

Tamanho e limites

A página não impõe limite de tamanho, mas a árvore é marcação de verdade, então documentos muito grandes pesam: uma amostra de 1,1 MB gerou cerca de 25 MB de marcação e levou quase um segundo. Alguns milhares de linhas continuam respondendo bem: redesenhar um documento de 300 linhas a cada tecla levou de 6 a 15 ms no Chrome depois da primeira passada.

Nada é guardado: ao recarregar, volta a amostra da caixa da esquerda, e Limpar esvazia os dois painéis.

Ferramentas recentes: